@surflane/ui 0.1.0 → 0.3.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 (87) hide show
  1. package/README.md +8 -8
  2. package/dist/advanced-forms.d.ts +2 -2
  3. package/dist/advanced-forms.js +39 -39
  4. package/dist/app-shell.d.ts +3 -2
  5. package/dist/app-shell.js +29 -13
  6. package/dist/button.d.ts +5 -5
  7. package/dist/button.js +12 -12
  8. package/dist/chart.d.ts +3 -3
  9. package/dist/chart.js +36 -34
  10. package/dist/commands.d.ts +5 -5
  11. package/dist/commands.js +17 -17
  12. package/dist/content.d.ts +2 -2
  13. package/dist/content.js +66 -28
  14. package/dist/context-overlays.d.ts +3 -3
  15. package/dist/context-overlays.js +11 -11
  16. package/dist/data.d.ts +58 -13
  17. package/dist/data.js +63 -21
  18. package/dist/date-picker.d.ts +8 -8
  19. package/dist/date-picker.js +18 -18
  20. package/dist/dialog-focus.js +7 -7
  21. package/dist/dialog.d.ts +5 -5
  22. package/dist/dialog.js +16 -16
  23. package/dist/feedback.d.ts +5 -5
  24. package/dist/feedback.js +20 -20
  25. package/dist/file-upload.d.ts +9 -9
  26. package/dist/file-upload.js +64 -63
  27. package/dist/filter-bar.d.ts +1 -1
  28. package/dist/filter-bar.js +9 -9
  29. package/dist/form-state.d.ts +1 -1
  30. package/dist/form-state.js +11 -11
  31. package/dist/forms.d.ts +5 -5
  32. package/dist/forms.js +32 -32
  33. package/dist/foundations.d.ts +10 -10
  34. package/dist/foundations.js +26 -26
  35. package/dist/icon.d.ts +8 -7
  36. package/dist/icon.js +23 -22
  37. package/dist/index.d.ts +38 -37
  38. package/dist/index.js +39 -38
  39. package/dist/input-extensions.d.ts +3 -3
  40. package/dist/input-extensions.js +21 -21
  41. package/dist/input.d.ts +2 -2
  42. package/dist/input.js +7 -7
  43. package/dist/markdown.d.ts +2 -2
  44. package/dist/markdown.js +38 -38
  45. package/dist/menu.d.ts +2 -2
  46. package/dist/menu.js +19 -19
  47. package/dist/messages.d.ts +2 -2
  48. package/dist/messages.js +18 -18
  49. package/dist/navigation-menu.d.ts +2 -2
  50. package/dist/navigation-menu.js +16 -16
  51. package/dist/navigation.d.ts +5 -5
  52. package/dist/navigation.js +40 -40
  53. package/dist/otp-field.d.ts +1 -1
  54. package/dist/otp-field.js +14 -14
  55. package/dist/pagination.d.ts +2 -2
  56. package/dist/pagination.js +12 -12
  57. package/dist/panels.d.ts +8 -8
  58. package/dist/panels.js +39 -39
  59. package/dist/parts.d.ts +2 -2
  60. package/dist/parts.js +8 -8
  61. package/dist/popover.d.ts +3 -3
  62. package/dist/popover.js +6 -6
  63. package/dist/scroll-area.d.ts +1 -1
  64. package/dist/scroll-area.js +20 -20
  65. package/dist/select.d.ts +8 -8
  66. package/dist/select.js +21 -21
  67. package/dist/sizing.d.ts +3 -3
  68. package/dist/sizing.js +9 -9
  69. package/dist/slot.d.ts +1 -1
  70. package/dist/slot.js +4 -4
  71. package/dist/status.d.ts +4 -4
  72. package/dist/status.js +8 -8
  73. package/dist/syntax-engine.js +43 -43
  74. package/dist/syntax-highlighter.d.ts +2 -2
  75. package/dist/syntax-highlighter.js +32 -32
  76. package/dist/table-selection.d.ts +31 -0
  77. package/dist/table-selection.js +50 -0
  78. package/dist/toast.d.ts +4 -4
  79. package/dist/toast.js +33 -33
  80. package/dist/tone-transition.d.ts +1 -1
  81. package/dist/tone-transition.js +17 -17
  82. package/dist/tooltip.d.ts +1 -1
  83. package/dist/tooltip.js +4 -4
  84. package/dist/tree.d.ts +4 -4
  85. package/dist/tree.js +60 -60
  86. package/package.json +2 -2
  87. package/src/styles.css +266 -142
@@ -1,6 +1,6 @@
1
- import * as React from "react";
2
- import { Autocomplete as BaseAutocomplete } from "@base-ui/react/autocomplete";
3
- import { Slider as BaseSlider } from "@base-ui/react/slider";
1
+ import * as React from 'react';
2
+ import { Autocomplete as BaseAutocomplete } from '@base-ui/react/autocomplete';
3
+ import { Slider as BaseSlider } from '@base-ui/react/slider';
4
4
  declare const AutocompleteRoot: typeof BaseAutocomplete.Root;
5
5
  export declare const Autocomplete: {
6
6
  Root: typeof BaseAutocomplete.Root;
@@ -1,14 +1,14 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { Autocomplete as BaseAutocomplete } from "@base-ui/react/autocomplete";
5
- import { Slider as BaseSlider } from "@base-ui/react/slider";
6
- import { Combobox } from "./advanced-forms.js";
7
- import { skin, part } from "./parts.js";
8
- import { useResetValue, useRootRef } from "./form-state.js";
3
+ import * as React from 'react';
4
+ import { Autocomplete as BaseAutocomplete } from '@base-ui/react/autocomplete';
5
+ import { Slider as BaseSlider } from '@base-ui/react/slider';
6
+ import { Combobox } from './advanced-forms.js';
7
+ import { skin, part } from './parts.js';
8
+ import { useResetValue, useRootRef } from './form-state.js';
9
9
  const AutocompleteRoot = function AutocompleteRoot({ children, form, value, defaultValue, onValueChange, ...props }) {
10
10
  const anchor = React.useRef(null);
11
- const [query, setQuery, revision] = useResetValue(value, defaultValue ?? "", anchor, form);
11
+ const [query, setQuery, revision] = useResetValue(value, defaultValue ?? '', anchor, form);
12
12
  return (_jsxs(BaseAutocomplete.Root, { ...props, form: form, value: query, onValueChange: (next, event) => {
13
13
  onValueChange?.(next, event);
14
14
  if (value === undefined && !event.isCanceled)
@@ -16,10 +16,10 @@ const AutocompleteRoot = function AutocompleteRoot({ children, form, value, defa
16
16
  }, children: [_jsx("span", { hidden: true, ref: anchor }), children] }, revision));
17
17
  };
18
18
  const AutoTrigger = React.forwardRef(function AutoTrigger({ className, children, ...props }, ref) {
19
- return (_jsx(BaseAutocomplete.Trigger, { "aria-label": "Show suggestions", ...props, ref: ref, className: skin("pui-combobox-action", className), children: children ?? (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", "aria-hidden": "true", children: _jsx("path", { d: "m6 9 6 6 6-6" }) })) }));
19
+ return (_jsx(BaseAutocomplete.Trigger, { "aria-label": 'Show suggestions', ...props, ref: ref, className: skin('pui-combobox-action', className), children: children ?? (_jsx("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: 'm6 9 6 6 6-6' }) })) }));
20
20
  });
21
21
  const AutoClear = React.forwardRef(function AutoClear(props, ref) {
22
- return _jsx(Combobox.Clear, { "aria-label": "Clear input", ...props, ref: ref });
22
+ return _jsx(Combobox.Clear, { "aria-label": 'Clear input', ...props, ref: ref });
23
23
  });
24
24
  export const Autocomplete = {
25
25
  ...BaseAutocomplete,
@@ -35,14 +35,14 @@ export const Autocomplete = {
35
35
  GroupLabel: Combobox.GroupLabel,
36
36
  Clear: AutoClear,
37
37
  Trigger: AutoTrigger,
38
- InputGroup: part(BaseAutocomplete.InputGroup, "pui-combobox-group"),
39
- Item: part(BaseAutocomplete.Item, "pui-combobox-item"),
40
- Separator: part(BaseAutocomplete.Separator, "pui-combobox-separator"),
38
+ InputGroup: part(BaseAutocomplete.InputGroup, 'pui-combobox-group'),
39
+ Item: part(BaseAutocomplete.Item, 'pui-combobox-item'),
40
+ Separator: part(BaseAutocomplete.Separator, 'pui-combobox-separator'),
41
41
  };
42
- function SliderRoot({ value, defaultValue, onValueChange, ref, className, form, thumbAlignment = "edge", ...props }) {
42
+ function SliderRoot({ value, defaultValue, onValueChange, ref, className, form, thumbAlignment = 'edge', ...props }) {
43
43
  const [element, attach] = useRootRef(ref);
44
44
  const [selected, setSelected] = useResetValue(value, (defaultValue ?? props.min ?? 0), element, form);
45
- return (_jsx(BaseSlider.Root, { ...props, form: form, ref: attach, value: selected, thumbAlignment: thumbAlignment, className: skin("pui-slider", className), onValueChange: (next, event) => {
45
+ return (_jsx(BaseSlider.Root, { ...props, form: form, ref: attach, value: selected, thumbAlignment: thumbAlignment, className: skin('pui-slider', className), onValueChange: (next, event) => {
46
46
  onValueChange?.(next, event);
47
47
  if (value === undefined && !event.isCanceled)
48
48
  setSelected(next);
@@ -51,12 +51,12 @@ function SliderRoot({ value, defaultValue, onValueChange, ref, className, form,
51
51
  export const Slider = {
52
52
  ...BaseSlider,
53
53
  Root: SliderRoot,
54
- Label: part(BaseSlider.Label, "pui-slider-label"),
55
- Value: part(BaseSlider.Value, "pui-slider-value"),
56
- Control: part(BaseSlider.Control, "pui-slider-control"),
57
- Track: part(BaseSlider.Track, "pui-slider-track"),
58
- Indicator: part(BaseSlider.Indicator, "pui-slider-indicator"),
59
- Thumb: part(BaseSlider.Thumb, "pui-slider-thumb"),
54
+ Label: part(BaseSlider.Label, 'pui-slider-label'),
55
+ Value: part(BaseSlider.Value, 'pui-slider-value'),
56
+ Control: part(BaseSlider.Control, 'pui-slider-control'),
57
+ Track: part(BaseSlider.Track, 'pui-slider-track'),
58
+ Indicator: part(BaseSlider.Indicator, 'pui-slider-indicator'),
59
+ Thumb: part(BaseSlider.Thumb, 'pui-slider-thumb'),
60
60
  };
61
61
  // Flat names for React Server Components, which cannot dot into client exports.
62
62
  export { AutocompleteRoot, SliderRoot };
package/dist/input.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import { type ComponentSizeAlias } from "./sizing.js";
1
+ import * as React from 'react';
2
+ import { type ComponentSizeAlias } from './sizing.js';
3
3
  export declare const Input: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "size"> & {
4
4
  size?: number | ComponentSizeAlias;
5
5
  leadingIcon?: React.ReactNode;
package/dist/input.js CHANGED
@@ -1,10 +1,10 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { useComponentSize } from "./sizing.js";
5
- import { Input as BaseInput } from "@base-ui/react/input";
6
- const cx = (...v) => v.filter(Boolean).join(" ");
3
+ import * as React from 'react';
4
+ import { useComponentSize } from './sizing.js';
5
+ import { Input as BaseInput } from '@base-ui/react/input';
6
+ const cx = (...v) => v.filter(Boolean).join(' ');
7
7
  export const Input = React.forwardRef(function Input({ className, leadingIcon, wrapperClassName, size, ...props }, ref) {
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) })] }));
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) })] }));
10
10
  });
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- export type MarkdownProps = Omit<React.ComponentPropsWithoutRef<"div">, "children"> & {
1
+ import * as React from 'react';
2
+ export type MarkdownProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> & {
3
3
  source: string;
4
4
  label?: string;
5
5
  headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
package/dist/markdown.js CHANGED
@@ -1,27 +1,27 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import ReactMarkdown from "react-markdown";
5
- import remarkGfm from "remark-gfm";
6
- import { CodeBlock } from "./content.js";
7
- import { Table } from "./data.js";
3
+ import * as React from 'react';
4
+ import ReactMarkdown from 'react-markdown';
5
+ import remarkGfm from 'remark-gfm';
6
+ import { CodeBlock } from './content.js';
7
+ import { Table } from './data.js';
8
8
  function text(node) {
9
- return "value" in node
9
+ return 'value' in node
10
10
  ? node.value
11
- : "children" in node
12
- ? node.children.map((child) => text(child)).join("")
13
- : "";
11
+ : 'children' in node
12
+ ? node.children.map((child) => text(child)).join('')
13
+ : '';
14
14
  }
15
15
  function visit(node, callback) {
16
- if (node.type === "element")
16
+ if (node.type === 'element')
17
17
  callback(node);
18
- if ("children" in node)
18
+ if ('children' in node)
19
19
  node.children.forEach((child) => visit(child, callback));
20
20
  }
21
21
  /** CommonMark + GFM. HTML stays disabled, URLs use react-markdown's safe default.
22
22
  * Fetching, permissions, frontmatter, MDX and script execution are caller concerns. */
23
- export const Markdown = React.forwardRef(function Markdown({ source, label = "Markdown content", headingLevel = 2, codeWrap = false, className, ...props }, ref) {
24
- const prefix = `md-${React.useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
23
+ export const Markdown = React.forwardRef(function Markdown({ source, label = 'Markdown content', headingLevel = 2, codeWrap = false, className, ...props }, ref) {
24
+ const prefix = `md-${React.useId().replace(/[^a-zA-Z0-9_-]/g, '')}`;
25
25
  const headings = React.useMemo(() => () => (tree) => {
26
26
  const counts = new Map();
27
27
  const anchors = new Map();
@@ -30,43 +30,43 @@ export const Markdown = React.forwardRef(function Markdown({ source, label = "Ma
30
30
  if (!/^h[1-6]$/.test(node.tagName))
31
31
  return;
32
32
  const slug = text(node)
33
- .normalize("NFKC")
33
+ .normalize('NFKC')
34
34
  .toLowerCase()
35
- .replace(/[^\p{L}\p{N}\s_-]/gu, "")
35
+ .replace(/[^\p{L}\p{N}\s_-]/gu, '')
36
36
  .trim()
37
- .replace(/\s+/g, "-") || "section";
37
+ .replace(/\s+/g, '-') || 'section';
38
38
  const count = counts.get(slug) ?? 0;
39
39
  counts.set(slug, count + 1);
40
40
  const key = count ? `${slug}-${count}` : slug;
41
41
  const id = `${prefix}-${key}`;
42
- if (typeof node.properties.id === "string")
42
+ if (typeof node.properties.id === 'string')
43
43
  previousIds.set(node.properties.id, id);
44
44
  node.properties.id = id;
45
45
  anchors.set(key, id);
46
46
  });
47
47
  visit(tree, (node) => {
48
- if (node.tagName === "li" &&
49
- String(node.properties.className ?? "").includes("task-list-item")) {
50
- const taskLabel = text(node).trim() || "Task list item";
48
+ if (node.tagName === 'li' &&
49
+ String(node.properties.className ?? '').includes('task-list-item')) {
50
+ const taskLabel = text(node).trim() || 'Task list item';
51
51
  visit(node, (child) => {
52
- if (child.tagName === "input" &&
53
- child.properties.type === "checkbox")
52
+ if (child.tagName === 'input' &&
53
+ child.properties.type === 'checkbox')
54
54
  child.properties.ariaLabel = taskLabel;
55
55
  });
56
56
  }
57
- for (const property of ["ariaDescribedBy", "ariaLabelledBy"]) {
57
+ for (const property of ['ariaDescribedBy', 'ariaLabelledBy']) {
58
58
  const references = node.properties[property];
59
59
  if (Array.isArray(references))
60
60
  node.properties[property] = references.map((value) => previousIds.get(String(value)) ?? value);
61
- else if (typeof references === "string")
61
+ else if (typeof references === 'string')
62
62
  node.properties[property] = references
63
63
  .split(/\s+/)
64
64
  .map((value) => previousIds.get(value) ?? value)
65
- .join(" ");
65
+ .join(' ');
66
66
  }
67
- if (node.tagName !== "a" ||
68
- typeof node.properties.href !== "string" ||
69
- !node.properties.href.startsWith("#"))
67
+ if (node.tagName !== 'a' ||
68
+ typeof node.properties.href !== 'string' ||
69
+ !node.properties.href.startsWith('#'))
70
70
  return;
71
71
  try {
72
72
  const target = anchors.get(decodeURIComponent(node.properties.href.slice(1)));
@@ -91,31 +91,31 @@ export const Markdown = React.forwardRef(function Markdown({ source, label = "Ma
91
91
  const child = React.Children.toArray(children)[0];
92
92
  if (!React.isValidElement(child))
93
93
  return _jsx("pre", { children: children });
94
- const language = /(?:^|\s)language-([^\s]+)/.exec(child.props.className ?? "")?.[1] ?? "text";
95
- const code = String(child.props.children ?? "").replace(/\n$/, "");
94
+ const language = /(?:^|\s)language-([^\s]+)/.exec(child.props.className ?? '')?.[1] ?? 'text';
95
+ const code = String(child.props.children ?? '').replace(/\n$/, '');
96
96
  return (_jsx(CodeBlock, { code: code, language: language, wrap: codeWrap, label: `${label}: code at line ${node?.position?.start.line ?? 1}` }));
97
97
  },
98
98
  code({ node: _node, ...codeProps }) {
99
- return _jsx("code", { ...codeProps, className: "pui-markdown-inline-code" });
99
+ return _jsx("code", { ...codeProps, className: 'pui-markdown-inline-code' });
100
100
  },
101
101
  table({ node, children, ...tableProps }) {
102
- return (_jsx(Table.Container, { label: `${label}: table at line ${node?.position?.start.line ?? 1}`, orientation: "horizontal", children: _jsx("table", { ...tableProps, className: "pui-table", children: children }) }));
102
+ return (_jsx(Table.Container, { label: `${label}: table at line ${node?.position?.start.line ?? 1}`, orientation: 'horizontal', children: _jsx("table", { ...tableProps, className: 'pui-table', children: children }) }));
103
103
  },
104
104
  th({ node: _node, ...cellProps }) {
105
- return (_jsx("th", { ...cellProps, scope: "col", className: "pui-table-cell pui-table-header" }));
105
+ return (_jsx("th", { ...cellProps, scope: 'col', className: 'pui-table-cell pui-table-header' }));
106
106
  },
107
107
  td({ node: _node, ...cellProps }) {
108
- return _jsx("td", { ...cellProps, className: "pui-table-cell" });
108
+ return _jsx("td", { ...cellProps, className: 'pui-table-cell' });
109
109
  },
110
110
  a({ node: _node, href, children, ...linkProps }) {
111
111
  return href ? (_jsx("a", { ...linkProps, href: href, children: children })) : (_jsx("span", { children: children }));
112
112
  },
113
113
  img({ node: _node, src, alt, ...imageProps }) {
114
- return src ? (_jsx("img", { ...imageProps, src: src, alt: alt ?? "", loading: "lazy" })) : (_jsx("span", { children: alt }));
114
+ return src ? (_jsx("img", { ...imageProps, src: src, alt: alt ?? '', loading: 'lazy' })) : (_jsx("span", { children: alt }));
115
115
  },
116
116
  };
117
117
  }, [headingLevel, label, codeWrap]);
118
- return (_jsx("div", { ...props, ref: ref, role: "article", className: ["pui-prose pui-markdown", className]
118
+ return (_jsx("div", { ...props, ref: ref, role: 'article', className: ['pui-prose pui-markdown', className]
119
119
  .filter(Boolean)
120
- .join(" "), "aria-label": label, children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], rehypePlugins: [headings], remarkRehypeOptions: { clobberPrefix: `${prefix}-` }, skipHtml: true, components: components, children: source }) }));
120
+ .join(' '), "aria-label": label, children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], rehypePlugins: [headings], remarkRehypeOptions: { clobberPrefix: `${prefix}-` }, skipHtml: true, components: components, children: source }) }));
121
121
  });
package/dist/menu.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import { Menu as BaseMenu } from "@base-ui/react/menu";
1
+ import * as React from 'react';
2
+ import { Menu as BaseMenu } from '@base-ui/react/menu';
3
3
  declare const MenuPopup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
4
4
  size?: import("./sizing.js").ComponentSize;
5
5
  } & React.RefAttributes<HTMLDivElement>>;
package/dist/menu.js CHANGED
@@ -1,26 +1,26 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { Menu as BaseMenu } from "@base-ui/react/menu";
5
- import { skin, part } from "./parts.js";
6
- const MenuPopup = part(BaseMenu.Popup, "pui-menu");
7
- const MenuPositioner = part(BaseMenu.Positioner, "pui-positioner");
8
- const MenuContent = React.forwardRef(function MenuContent({ align = "end", sideOffset = 6, side, collisionPadding, className, ...props }, ref) {
3
+ import * as React from 'react';
4
+ import { Menu as BaseMenu } from '@base-ui/react/menu';
5
+ import { skin, part } from './parts.js';
6
+ const MenuPopup = part(BaseMenu.Popup, 'pui-menu');
7
+ const MenuPositioner = part(BaseMenu.Positioner, 'pui-positioner');
8
+ const MenuContent = React.forwardRef(function MenuContent({ align = 'end', sideOffset = 6, side, collisionPadding, className, ...props }, ref) {
9
9
  return (_jsx(MenuPositioner, { align: align, side: side, sideOffset: sideOffset, collisionPadding: collisionPadding, children: _jsx(MenuPopup, { ...props, ref: ref, className: className }) }));
10
10
  });
11
11
  const MenuTrigger = React.forwardRef(function MenuTrigger({ className, ...props }, ref) {
12
- return (_jsx(BaseMenu.Trigger, { "data-variant": "ghost", ...props, ref: ref, className: skin("pui-button pui-menu-trigger", className) }));
12
+ return (_jsx(BaseMenu.Trigger, { "data-variant": 'ghost', ...props, ref: ref, className: skin('pui-button pui-menu-trigger', className) }));
13
13
  });
14
14
  const CheckboxIndicator = React.forwardRef(function CheckboxIndicator({ className, children, ...props }, ref) {
15
- return (_jsx(BaseMenu.CheckboxItemIndicator, { keepMounted: true, ...props, ref: ref, className: skin("pui-menu-indicator", className), children: children ?? (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", "aria-hidden": "true", children: _jsx("path", { d: "m5 12 4 4L19 6" }) })) }));
15
+ return (_jsx(BaseMenu.CheckboxItemIndicator, { keepMounted: true, ...props, ref: ref, className: skin('pui-menu-indicator', className), children: children ?? (_jsx("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: 'm5 12 4 4L19 6' }) })) }));
16
16
  });
17
17
  const RadioIndicator = React.forwardRef(function RadioIndicator({ className, children, ...props }, ref) {
18
- return (_jsx(BaseMenu.RadioItemIndicator, { keepMounted: true, ...props, ref: ref, className: skin("pui-menu-indicator", className), children: children ?? (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: _jsx("circle", { cx: "12", cy: "12", r: "4" }) })) }));
18
+ return (_jsx(BaseMenu.RadioItemIndicator, { keepMounted: true, ...props, ref: ref, className: skin('pui-menu-indicator', className), children: children ?? (_jsx("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'currentColor', "aria-hidden": 'true', children: _jsx("circle", { cx: '12', cy: '12', r: '4' }) })) }));
19
19
  });
20
20
  const SubmenuTrigger = React.forwardRef(function SubmenuTrigger({ className, children, indicator, ...props }, ref) {
21
- return (_jsxs(BaseMenu.SubmenuTrigger, { ...props, ref: ref, className: skin("pui-menu-item pui-menu-submenu-trigger", className), children: [children, indicator === false
21
+ return (_jsxs(BaseMenu.SubmenuTrigger, { ...props, ref: ref, className: skin('pui-menu-item pui-menu-submenu-trigger', className), children: [children, indicator === false
22
22
  ? null
23
- : (indicator ?? (_jsx("svg", { className: "pui-submenu-arrow", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", "aria-hidden": "true", children: _jsx("path", { d: "m9 6 6 6-6 6" }) })))] }));
23
+ : (indicator ?? (_jsx("svg", { className: 'pui-submenu-arrow', width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: 'm9 6 6 6-6 6' }) })))] }));
24
24
  });
25
25
  export const Menu = {
26
26
  ...BaseMenu,
@@ -31,13 +31,13 @@ export const Menu = {
31
31
  CheckboxItemIndicator: CheckboxIndicator,
32
32
  RadioItemIndicator: RadioIndicator,
33
33
  SubmenuTrigger,
34
- Item: part(BaseMenu.Item, "pui-menu-item"),
35
- LinkItem: part(BaseMenu.LinkItem, "pui-menu-item"),
36
- CheckboxItem: part(BaseMenu.CheckboxItem, "pui-menu-item pui-menu-check-item"),
37
- RadioItem: part(BaseMenu.RadioItem, "pui-menu-item pui-menu-check-item"),
38
- GroupLabel: part(BaseMenu.GroupLabel, "pui-menu-group-label"),
39
- Separator: part(BaseMenu.Separator, "pui-menu-separator"),
40
- Input: part(BaseMenu.Input, "pui-input"),
34
+ Item: part(BaseMenu.Item, 'pui-menu-item'),
35
+ LinkItem: part(BaseMenu.LinkItem, 'pui-menu-item'),
36
+ CheckboxItem: part(BaseMenu.CheckboxItem, 'pui-menu-item pui-menu-check-item'),
37
+ RadioItem: part(BaseMenu.RadioItem, 'pui-menu-item pui-menu-check-item'),
38
+ GroupLabel: part(BaseMenu.GroupLabel, 'pui-menu-group-label'),
39
+ Separator: part(BaseMenu.Separator, 'pui-menu-separator'),
40
+ Input: part(BaseMenu.Input, 'pui-input'),
41
41
  };
42
42
  // Flat names for React Server Components, which cannot dot into client exports.
43
43
  export { MenuPopup, MenuPositioner, MenuTrigger, MenuContent };
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import { type StatusTone } from "./status.js";
1
+ import * as React from 'react';
2
+ import { type StatusTone } from './status.js';
3
3
  export declare const InlineMessage: {
4
4
  Root: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
5
5
  tone?: StatusTone;
package/dist/messages.js CHANGED
@@ -1,37 +1,37 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { useToneTransition } from "./tone-transition.js";
5
- import { part } from "./parts.js";
6
- import { StatusIcon } from "./status.js";
7
- const MessageRoot = React.forwardRef(function MessageRoot({ tone = "neutral", className, ...props }, ref) {
3
+ import * as React from 'react';
4
+ import { useToneTransition } from './tone-transition.js';
5
+ import { part } from './parts.js';
6
+ import { StatusIcon } from './status.js';
7
+ const MessageRoot = React.forwardRef(function MessageRoot({ tone = 'neutral', className, ...props }, ref) {
8
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: ['pui-message', className].filter(Boolean).join(' ') }));
10
10
  });
11
- const MessageIcon = React.forwardRef(function MessageIcon({ tone = "neutral", children, className, ...props }, ref) {
12
- return (_jsx("span", { ...props, ref: ref, "aria-hidden": "true", className: ["pui-message-icon", className].filter(Boolean).join(" "), children: children ?? _jsx(StatusIcon, { tone: tone }) }));
11
+ const MessageIcon = React.forwardRef(function MessageIcon({ tone = 'neutral', children, className, ...props }, ref) {
12
+ return (_jsx("span", { ...props, ref: ref, "aria-hidden": 'true', className: ['pui-message-icon', className].filter(Boolean).join(' '), children: children ?? _jsx(StatusIcon, { tone: tone }) }));
13
13
  });
14
14
  export const InlineMessage = {
15
15
  Root: MessageRoot,
16
16
  Icon: MessageIcon,
17
- Content: part("div", "pui-message-content"),
18
- Title: part("strong", "pui-message-title"),
19
- Description: part("p", "pui-message-description"),
20
- Actions: part("div", "pui-message-actions"),
17
+ Content: part('div', 'pui-message-content'),
18
+ Title: part('strong', 'pui-message-title'),
19
+ Description: part('p', 'pui-message-description'),
20
+ Actions: part('div', 'pui-message-actions'),
21
21
  };
22
22
  const EmptyTitle = React.forwardRef(function EmptyTitle({ level = 3, className, ...props }, ref) {
23
23
  return React.createElement(`h${level}`, {
24
24
  ...props,
25
25
  ref,
26
- className: ["pui-empty-title", className].filter(Boolean).join(" "),
26
+ className: ['pui-empty-title', className].filter(Boolean).join(' '),
27
27
  });
28
28
  });
29
29
  export const EmptyState = {
30
- Root: part("div", "pui-empty"),
31
- Icon: part("div", "pui-empty-icon"),
30
+ Root: part('div', 'pui-empty'),
31
+ Icon: part('div', 'pui-empty-icon'),
32
32
  Title: EmptyTitle,
33
- Description: part("p", "pui-empty-description"),
34
- Actions: part("div", "pui-empty-actions"),
33
+ Description: part('p', 'pui-empty-description'),
34
+ Actions: part('div', 'pui-empty-actions'),
35
35
  };
36
36
  // Flat names for React Server Components, which cannot dot into client exports.
37
37
  export const { Root: EmptyStateRoot, Icon: EmptyStateIcon, Title: EmptyStateTitle, Description: EmptyStateDescription, Actions: EmptyStateActions, } = EmptyState;
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import { NavigationMenu as BaseNavigationMenu } from "@base-ui/react/navigation-menu";
1
+ import * as React from 'react';
2
+ import { NavigationMenu as BaseNavigationMenu } from '@base-ui/react/navigation-menu';
3
3
  declare function Root<Value>(props: BaseNavigationMenu.Root.Props<Value>): React.JSX.Element;
4
4
  export declare const NavigationMenu: {
5
5
  Root: typeof Root;
@@ -1,30 +1,30 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { NavigationMenu as BaseNavigationMenu } from "@base-ui/react/navigation-menu";
5
- import { part, skin } from "./parts.js";
3
+ import * as React from 'react';
4
+ import { NavigationMenu as BaseNavigationMenu } from '@base-ui/react/navigation-menu';
5
+ import { part, skin } from './parts.js';
6
6
  function Root(props) {
7
- const { className, orientation = "horizontal", ...rest } = props;
8
- return (_jsx(BaseNavigationMenu.Root, { ...rest, orientation: orientation, "data-orientation": orientation, className: skin("pui-navigation-menu", className) }));
7
+ const { className, orientation = 'horizontal', ...rest } = props;
8
+ return (_jsx(BaseNavigationMenu.Root, { ...rest, orientation: orientation, "data-orientation": orientation, className: skin('pui-navigation-menu', className) }));
9
9
  }
10
10
  const Trigger = React.forwardRef(function Trigger({ className, children, indicator, ...props }, ref) {
11
- return (_jsxs(BaseNavigationMenu.Trigger, { "data-variant": "ghost", ...props, ref: ref, className: skin("pui-button pui-navigation-trigger", className), children: [children, indicator === false
11
+ return (_jsxs(BaseNavigationMenu.Trigger, { "data-variant": 'ghost', ...props, ref: ref, className: skin('pui-button pui-navigation-trigger', className), children: [children, indicator === false
12
12
  ? null
13
- : (indicator ?? (_jsx(BaseNavigationMenu.Icon, { className: "pui-navigation-icon", children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", "aria-hidden": "true", children: _jsx("path", { d: "m6 9 6 6 6-6" }) }) })))] }));
13
+ : (indicator ?? (_jsx(BaseNavigationMenu.Icon, { className: 'pui-navigation-icon', children: _jsx("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: 'm6 9 6 6 6-6' }) }) })))] }));
14
14
  });
15
15
  export const NavigationMenu = {
16
16
  ...BaseNavigationMenu,
17
17
  Root,
18
18
  Trigger,
19
- List: part(BaseNavigationMenu.List, "pui-navigation-list"),
20
- Item: part(BaseNavigationMenu.Item, "pui-navigation-item"),
21
- Link: part(BaseNavigationMenu.Link, "pui-navigation-link"),
22
- Content: part(BaseNavigationMenu.Content, "pui-navigation-content"),
23
- Positioner: part(BaseNavigationMenu.Positioner, "pui-positioner pui-navigation-positioner"),
24
- Popup: part(BaseNavigationMenu.Popup, "pui-navigation-popup"),
25
- Viewport: part(BaseNavigationMenu.Viewport, "pui-navigation-viewport"),
19
+ List: part(BaseNavigationMenu.List, 'pui-navigation-list'),
20
+ Item: part(BaseNavigationMenu.Item, 'pui-navigation-item'),
21
+ Link: part(BaseNavigationMenu.Link, 'pui-navigation-link'),
22
+ Content: part(BaseNavigationMenu.Content, 'pui-navigation-content'),
23
+ Positioner: part(BaseNavigationMenu.Positioner, 'pui-positioner pui-navigation-positioner'),
24
+ Popup: part(BaseNavigationMenu.Popup, 'pui-navigation-popup'),
25
+ Viewport: part(BaseNavigationMenu.Viewport, 'pui-navigation-viewport'),
26
26
  Icon: React.forwardRef(function Icon({ children, className, ...props }, ref) {
27
- return (_jsx(BaseNavigationMenu.Icon, { ...props, ref: ref, className: skin("pui-navigation-icon", className), children: children ?? (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", "aria-hidden": "true", children: _jsx("path", { d: "m6 9 6 6 6-6" }) })) }));
27
+ return (_jsx(BaseNavigationMenu.Icon, { ...props, ref: ref, className: skin('pui-navigation-icon', className), children: children ?? (_jsx("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: 'm6 9 6 6 6-6' }) })) }));
28
28
  }),
29
29
  };
30
30
  // Flat names for React Server Components, which cannot dot into client exports.
@@ -1,6 +1,6 @@
1
- import * as React from "react";
2
- import { type ComponentSizeAlias } from "./sizing.js";
3
- import { Accordion as BaseAccordion } from "@base-ui/react/accordion";
1
+ import * as React from 'react';
2
+ import { type ComponentSizeAlias } from './sizing.js';
3
+ import { Accordion as BaseAccordion } from '@base-ui/react/accordion';
4
4
  export declare const Tabs: {
5
5
  Root: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
6
6
  size?: import("./sizing.js").ComponentSize;
@@ -69,8 +69,8 @@ export declare const Separator: React.ForwardRefExoticComponent<Omit<Omit<import
69
69
  inset?: boolean;
70
70
  } & React.RefAttributes<HTMLDivElement>>;
71
71
  export declare const Link: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
72
- declare function BreadcrumbSeparator({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
73
- declare function BreadcrumbCurrent({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
72
+ declare function BreadcrumbSeparator({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
73
+ declare function BreadcrumbCurrent({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
74
74
  export declare const Breadcrumbs: {
75
75
  Root: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
76
76
  List: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;