@usememos/ui 26.10.3 → 26.10.4

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 (69) hide show
  1. package/README.md +9 -1
  2. package/dist/components/badge/index.js +1 -1
  3. package/dist/components/badge/index.js.map +3 -3
  4. package/dist/components/collapsible/index.js +1 -1
  5. package/dist/components/collapsible/index.js.map +3 -3
  6. package/dist/components/combobox/index.js +1 -1
  7. package/dist/components/combobox/index.js.map +3 -3
  8. package/dist/components/field/fieldset.js +1 -1
  9. package/dist/components/field/fieldset.js.map +3 -3
  10. package/dist/components/field/index.js +1 -1
  11. package/dist/components/field/index.js.map +3 -3
  12. package/dist/components/input/index.js +1 -1
  13. package/dist/components/input/index.js.map +3 -3
  14. package/dist/components/menu/classes.js +3 -0
  15. package/dist/components/menu/classes.js.map +7 -0
  16. package/dist/components/menu/index.js +1 -1
  17. package/dist/components/menu/index.js.map +3 -3
  18. package/dist/components/popover/classes.js +3 -0
  19. package/dist/components/popover/classes.js.map +7 -0
  20. package/dist/components/popover/index.js +1 -1
  21. package/dist/components/popover/index.js.map +3 -3
  22. package/dist/components/select/index.js +1 -1
  23. package/dist/components/select/index.js.map +3 -3
  24. package/dist/components/spinner/index.js.map +1 -1
  25. package/dist/components/table/index.js +1 -1
  26. package/dist/components/table/index.js.map +3 -3
  27. package/dist/components/tabs/index.js +1 -1
  28. package/dist/components/tabs/index.js.map +3 -3
  29. package/dist/components/textarea/index.js +1 -1
  30. package/dist/components/textarea/index.js.map +3 -3
  31. package/dist/components/toast/index.js +1 -1
  32. package/dist/components/toast/index.js.map +1 -1
  33. package/dist/components/tooltip/index.js +1 -1
  34. package/dist/components/tooltip/index.js.map +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/index.js.map +3 -3
  37. package/dist/internal/popup.js +1 -1
  38. package/dist/internal/popup.js.map +2 -2
  39. package/dist/internal/size.js +1 -1
  40. package/dist/internal/size.js.map +3 -3
  41. package/dist/styles.css +1 -1
  42. package/dist/tailwind.css +66 -0
  43. package/dist/theme-tokens.js +3 -0
  44. package/dist/theme-tokens.js.map +7 -0
  45. package/dist/tokens.css +1 -1
  46. package/dist/types/components/badge/index.d.ts +9 -0
  47. package/dist/types/components/collapsible/index.d.ts +1 -1
  48. package/dist/types/components/combobox/index.d.ts +2 -2
  49. package/dist/types/components/field/fieldset.d.ts +1 -1
  50. package/dist/types/components/field/index.d.ts +1 -1
  51. package/dist/types/components/input/index.d.ts +11 -1
  52. package/dist/types/components/menu/classes.d.ts +28 -0
  53. package/dist/types/components/menu/index.d.ts +2 -2
  54. package/dist/types/components/popover/classes.d.ts +14 -0
  55. package/dist/types/components/popover/index.d.ts +1 -1
  56. package/dist/types/components/select/index.d.ts +2 -2
  57. package/dist/types/components/spinner/index.d.ts +1 -1
  58. package/dist/types/components/table/index.d.ts +1 -1
  59. package/dist/types/components/tabs/index.d.ts +1 -1
  60. package/dist/types/components/textarea/index.d.ts +11 -1
  61. package/dist/types/components/tooltip/index.d.ts +1 -1
  62. package/dist/types/index.d.ts +6 -3
  63. package/dist/types/internal/popup.d.ts +2 -2
  64. package/dist/types/internal/size.d.ts +2 -0
  65. package/dist/types/theme-tokens.d.ts +7 -0
  66. package/dist/types/types.d.ts +6 -2
  67. package/llms-full.txt +305 -87
  68. package/llms.txt +1 -0
  69. package/package.json +3 -4
@@ -1,7 +1,7 @@
1
1
  import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible';
2
2
  import type { Size } from '../../types.js';
3
3
  export interface RootProps extends BaseCollapsible.Root.Props {
4
- size?: Size;
4
+ size?: Exclude<Size, 'xs'>;
5
5
  }
6
6
  /** Hides content behind one trigger until people ask for it. Holds a Trigger and a Panel. */
7
7
  export declare const Root: import("react").ForwardRefExoticComponent<Omit<RootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -6,7 +6,7 @@ export declare const Collection: typeof BaseCombobox.Collection;
6
6
  /** Base UI's matcher for `filter`, with locale-aware `contains`, `startsWith` and `endsWith`. */
7
7
  export declare const useFilter: typeof BaseCombobox.useFilter;
8
8
  export type RootProps<Value, Multiple extends boolean | undefined = false, Item = Value> = BaseCombobox.Root.Props<Value, Multiple, Item> & {
9
- size?: Size;
9
+ size?: Exclude<Size, 'xs'>;
10
10
  };
11
11
  /**
12
12
  * Groups the input and the list, and holds the value. Pass `items` so the
@@ -29,7 +29,7 @@ export interface InputProps extends Omit<BaseCombobox.Input.Props, 'size' | 'cla
29
29
  * `className` and `style` go to the box around it.
30
30
  */
31
31
  export declare const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
32
- type PositionerProps = Pick<BaseCombobox.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'collisionPadding' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
32
+ type PositionerProps = Pick<BaseCombobox.Positioner.Props, 'side' | 'align' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
33
33
  export interface PopupProps extends BaseCombobox.Popup.Props, PositionerProps {
34
34
  /** Where the list is portaled to. Default `document.body`. */
35
35
  container?: BaseCombobox.Portal.Props['container'];
@@ -1,7 +1,7 @@
1
1
  import { Fieldset as BaseFieldset } from '@base-ui/react/fieldset';
2
2
  import type { Size } from '../../types.js';
3
3
  export interface RootProps extends BaseFieldset.Root.Props {
4
- size?: Size;
4
+ size?: Exclude<Size, 'xs'>;
5
5
  }
6
6
  /** A group of checkboxes, radios or switches with one legend. */
7
7
  export declare const Root: import("react").ForwardRefExoticComponent<Omit<RootProps, "ref"> & import("react").RefAttributes<HTMLFieldSetElement>>;
@@ -2,7 +2,7 @@ import { Field as BaseField } from '@base-ui/react/field';
2
2
  import type { Size } from '../../types.js';
3
3
  export interface RootProps extends BaseField.Root.Props {
4
4
  /** The size of the control inside, passed on to it. */
5
- size?: Size;
5
+ size?: Exclude<Size, 'xs'>;
6
6
  }
7
7
  /** One control with its label, description and error, wired for screen readers. */
8
8
  export declare const Root: import("react").ForwardRefExoticComponent<Omit<RootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -2,7 +2,7 @@ import { Input as BaseInput } from '@base-ui/react/input';
2
2
  import { type CSSProperties, type ReactNode } from 'react';
3
3
  import type { Size } from '../../types.js';
4
4
  export interface InputProps extends Omit<BaseInput.Props, 'size' | 'prefix' | 'className' | 'style'> {
5
- size?: Size;
5
+ size?: Exclude<Size, 'xs'>;
6
6
  /** Says what the field is: a search or link icon. */
7
7
  prefix?: ReactNode;
8
8
  /** One action on the value (copy, clear), or a unit. */
@@ -12,6 +12,16 @@ export interface InputProps extends Omit<BaseInput.Props, 'size' | 'prefix' | 'c
12
12
  /** Styles for the visible box around the input. */
13
13
  style?: CSSProperties;
14
14
  }
15
+ export interface InputClassesOptions {
16
+ size?: Exclude<Size, 'xs'>;
17
+ }
18
+ /**
19
+ * The classes that make an element look like an Input's box. Use them on an
20
+ * app's own one-line field, such as a tag input: focus inside the element
21
+ * shows the ring, and `aria-invalid="true"` or `aria-disabled="true"` on it
22
+ * shows those states. See docs/custom-components.md.
23
+ */
24
+ export declare function inputClasses({ size }?: InputClassesOptions): string;
15
25
  /**
16
26
  * One line of text: flat `surface` with an `edge`. The ref and every other
17
27
  * prop go to the `<input>`; `className` and `style` go to the box around it.
@@ -0,0 +1,28 @@
1
+ import type { Size } from '../../types.js';
2
+ export interface MenuClassesOptions {
3
+ /** Row height of every item: 24 or 32px. */
4
+ size?: Exclude<Size, 'xs'>;
5
+ }
6
+ /** The classes of each part of a Menu. */
7
+ export interface MenuClasses {
8
+ /** The floating list. Sets the row size its items read. */
9
+ popup: string;
10
+ /** One row. Highlighted while it has `data-highlighted`; dimmed with `data-disabled`. */
11
+ item: string;
12
+ /** A destructive row: red text. */
13
+ dangerItem: string;
14
+ /** The text of a row, which truncates. */
15
+ label: string;
16
+ /** A keyboard shortcut at the end of a row. */
17
+ shortcut: string;
18
+ /** A line between groups of rows. */
19
+ separator: string;
20
+ /** The name of a group of rows. */
21
+ groupLabel: string;
22
+ }
23
+ /**
24
+ * The classes that make an app's own floating list look like a Menu, such as
25
+ * an editor's suggestion list. The app sets `data-highlighted` on the active
26
+ * row. See docs/custom-components.md.
27
+ */
28
+ export declare function menuClasses({ size }?: MenuClassesOptions): MenuClasses;
@@ -3,7 +3,7 @@ import { type ReactNode } from 'react';
3
3
  import type { IconElement, Size } from '../../types.js';
4
4
  export interface RootProps extends BaseMenu.Root.Props {
5
5
  /** Row height of every item: 24, 32 or 40px. */
6
- size?: Size;
6
+ size?: Exclude<Size, 'xs'>;
7
7
  }
8
8
  /** Groups a trigger and its menu. */
9
9
  export declare function Root({ size, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
@@ -11,7 +11,7 @@ export interface TriggerProps extends BaseMenu.Trigger.Props {
11
11
  }
12
12
  /** Opens the menu. Usually `render={<Button variant="ghost" icon={<Ellipsis />} aria-label="More actions" />}`. */
13
13
  export declare const Trigger: import("react").ForwardRefExoticComponent<Omit<TriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
14
- type PositionerProps = Pick<BaseMenu.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'collisionPadding' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
14
+ type PositionerProps = Pick<BaseMenu.Positioner.Props, 'side' | 'align' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
15
15
  export interface PopupProps extends BaseMenu.Popup.Props, PositionerProps {
16
16
  /** Where the menu is portaled to. Default `document.body`. */
17
17
  container?: BaseMenu.Portal.Props['container'];
@@ -0,0 +1,14 @@
1
+ /** The classes of each part of a Popover. */
2
+ export interface PopoverClasses {
3
+ /** The panel: a surface with `shadow-pop`, `popover-width` wide. */
4
+ popup: string;
5
+ /** The panel's heading. */
6
+ title: string;
7
+ /** One line under the title. */
8
+ description: string;
9
+ }
10
+ /**
11
+ * The classes that make an app's own floating panel look like a Popover, such
12
+ * as an emoji picker. See docs/custom-components.md.
13
+ */
14
+ export declare function popoverClasses(): PopoverClasses;
@@ -6,7 +6,7 @@ export interface TriggerProps extends BasePopover.Trigger.Props {
6
6
  }
7
7
  /** Opens the popover. Usually `render={<Button />}`. */
8
8
  export declare const Trigger: import("react").ForwardRefExoticComponent<Omit<TriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
9
- type PositionerProps = Pick<BasePopover.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'collisionPadding' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
9
+ type PositionerProps = Pick<BasePopover.Positioner.Props, 'side' | 'align' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
10
10
  export interface PopupProps extends BasePopover.Popup.Props, PositionerProps {
11
11
  /** Where the popover is portaled to. Default `document.body`. */
12
12
  container?: BasePopover.Portal.Props['container'];
@@ -2,7 +2,7 @@ import { Select as BaseSelect } from '@base-ui/react/select';
2
2
  import { type ReactNode } from 'react';
3
3
  import type { IconElement, Size } from '../../types.js';
4
4
  export type RootProps<Value, Multiple extends boolean | undefined = false> = BaseSelect.Root.Props<Value, Multiple> & {
5
- size?: Size;
5
+ size?: Exclude<Size, 'xs'>;
6
6
  };
7
7
  /** Groups the trigger and the list, and holds the value. Pass `items` so `Value` shows labels, not raw values. */
8
8
  export declare function Root<Value, Multiple extends boolean | undefined = false>({ size, ...props }: RootProps<Value, Multiple>): import("react/jsx-runtime").JSX.Element;
@@ -14,7 +14,7 @@ export interface ValueProps extends BaseSelect.Value.Props {
14
14
  }
15
15
  /** The chosen item's label, or `placeholder` in `ink-muted`. */
16
16
  export declare const Value: import("react").ForwardRefExoticComponent<Omit<ValueProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
17
- type PositionerProps = Pick<BaseSelect.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'collisionPadding' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking' | 'alignItemWithTrigger'>;
17
+ type PositionerProps = Pick<BaseSelect.Positioner.Props, 'side' | 'align' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking' | 'alignItemWithTrigger'>;
18
18
  export interface PopupProps extends BaseSelect.Popup.Props, PositionerProps {
19
19
  /** Where the list is portaled to. Default `document.body`. */
20
20
  container?: BaseSelect.Portal.Props['container'];
@@ -1,7 +1,7 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
2
  import type { Size } from '../../types.js';
3
3
  export interface SpinnerProps extends useRender.ComponentProps<'span'> {
4
- /** 14, 16 or 20px. Defaults to the surrounding component's size, else md. */
4
+ /** 12, 14 or 16px. Defaults to the surrounding component's size, else md. */
5
5
  size?: Size;
6
6
  /** What is loading, for screen readers. */
7
7
  label?: string;
@@ -2,7 +2,7 @@ import { type ComponentPropsWithoutRef } from 'react';
2
2
  import type { Size } from '../../types.js';
3
3
  export interface RootProps extends ComponentPropsWithoutRef<'table'> {
4
4
  /** `sm` for dense admin lists. Sets row height and cell text. */
5
- size?: Size;
5
+ size?: Exclude<Size, 'xs'>;
6
6
  }
7
7
  /**
8
8
  * A `<table>` with rows separated by `line`. It sits in a box that scrolls
@@ -2,7 +2,7 @@ import { Tabs as BaseTabs } from '@base-ui/react/tabs';
2
2
  import { type ReactNode } from 'react';
3
3
  import type { IconElement, Size } from '../../types.js';
4
4
  export interface RootProps extends BaseTabs.Root.Props {
5
- size?: Size;
5
+ size?: Exclude<Size, 'xs'>;
6
6
  }
7
7
  /** Switches between sections of the same page. Holds a List and one Panel per tab. */
8
8
  export declare const Root: import("react").ForwardRefExoticComponent<Omit<RootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,9 +1,19 @@
1
1
  import { Field as BaseField } from '@base-ui/react/field';
2
2
  import type { Size } from '../../types.js';
3
3
  export interface TextareaProps extends Omit<BaseField.Control.Props, 'size' | 'render'> {
4
- size?: Size;
4
+ size?: Exclude<Size, 'xs'>;
5
5
  /** Visible lines before it scrolls. Default 3. */
6
6
  rows?: number;
7
7
  }
8
+ export interface TextareaClassesOptions {
9
+ size?: Exclude<Size, 'xs'>;
10
+ }
11
+ /**
12
+ * The classes that make an element look like a Textarea. Use them on an app's
13
+ * own multi-line field, such as a content-editable editor: focus shows the
14
+ * ring, and `aria-invalid="true"` or `aria-disabled="true"` show those states.
15
+ * See docs/custom-components.md.
16
+ */
17
+ export declare function textareaClasses({ size }?: TextareaClassesOptions): string;
8
18
  /** A few lines of plain text. Looks like Input. */
9
19
  export declare const Textarea: import("react").ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
@@ -12,7 +12,7 @@ export interface TriggerProps extends BaseTooltip.Trigger.Props {
12
12
  }
13
13
  /** The control the tooltip names. Usually `render={<Button icon={...} aria-label="..." />}`. */
14
14
  export declare const Trigger: import("react").ForwardRefExoticComponent<Omit<TriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
15
- type PositionerProps = Pick<BaseTooltip.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'collisionPadding' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
15
+ type PositionerProps = Pick<BaseTooltip.Positioner.Props, 'side' | 'align' | 'collisionAvoidance' | 'collisionBoundary' | 'sticky' | 'anchor' | 'positionMethod' | 'disableAnchorTracking'>;
16
16
  export interface PopupProps extends BaseTooltip.Popup.Props, PositionerProps {
17
17
  /** A keyboard shortcut shown after the label, such as "⌘ K". */
18
18
  shortcut?: ReactNode;
@@ -1,7 +1,8 @@
1
1
  export type { IconElement, Size, Tone } from './types.js';
2
+ export { themeTokens } from './theme-tokens.js';
2
3
  export * as AlertDialog from './components/dialog/alert-dialog.js';
3
4
  export * as Avatar from './components/avatar/index.js';
4
- export { Badge, type BadgeProps } from './components/badge/index.js';
5
+ export { Badge, badgeClasses, type BadgeClassesOptions, type BadgeProps } from './components/badge/index.js';
5
6
  export { Button, buttonClasses, type ButtonClassesOptions, type ButtonProps, type ButtonVariant } from './components/button/index.js';
6
7
  export { Checkbox, type CheckboxProps } from './components/checkbox/index.js';
7
8
  export * as Collapsible from './components/collapsible/index.js';
@@ -9,11 +10,13 @@ export * as Combobox from './components/combobox/index.js';
9
10
  export * as Dialog from './components/dialog/index.js';
10
11
  export * as Field from './components/field/index.js';
11
12
  export * as Fieldset from './components/field/fieldset.js';
12
- export { Input, type InputProps } from './components/input/index.js';
13
+ export { Input, inputClasses, type InputClassesOptions, type InputProps } from './components/input/index.js';
13
14
  export { Kbd, type KbdProps } from './components/kbd/index.js';
14
15
  export { Link, type LinkProps } from './components/link/index.js';
15
16
  export * as Menu from './components/menu/index.js';
17
+ export { menuClasses, type MenuClasses, type MenuClassesOptions } from './components/menu/classes.js';
16
18
  export * as Popover from './components/popover/index.js';
19
+ export { popoverClasses, type PopoverClasses } from './components/popover/classes.js';
17
20
  export { Prose, type ProseProps } from './components/prose/index.js';
18
21
  export { Radio, RadioGroup, type RadioGroupProps, type RadioProps } from './components/radio-group/index.js';
19
22
  export * as Select from './components/select/index.js';
@@ -23,7 +26,7 @@ export { Spinner, type SpinnerProps } from './components/spinner/index.js';
23
26
  export { Switch, type SwitchProps } from './components/switch/index.js';
24
27
  export * as Table from './components/table/index.js';
25
28
  export * as Tabs from './components/tabs/index.js';
26
- export { Textarea, type TextareaProps } from './components/textarea/index.js';
29
+ export { Textarea, textareaClasses, type TextareaClassesOptions, type TextareaProps } from './components/textarea/index.js';
27
30
  export * as Toast from './components/toast/index.js';
28
31
  export { Toggle, type ToggleProps } from './components/toggle/index.js';
29
32
  export { ToggleGroup, type ToggleGroupProps } from './components/toggle-group/index.js';
@@ -1,9 +1,9 @@
1
1
  /** Base UI's Positioner props that every folded `Popup` part accepts. */
2
- declare const positionerKeys: readonly ["side", "align", "sideOffset", "alignOffset", "collisionPadding", "collisionAvoidance", "collisionBoundary", "sticky", "anchor", "positionMethod", "arrowPadding", "disableAnchorTracking", "alignItemWithTrigger"];
2
+ declare const positionerKeys: readonly ["side", "align", "collisionAvoidance", "collisionBoundary", "sticky", "anchor", "positionMethod", "disableAnchorTracking", "alignItemWithTrigger"];
3
3
  type PositionerKey = (typeof positionerKeys)[number];
4
4
  /**
5
5
  * Splits a folded Popup's props into the ones for Base UI's Positioner and
6
6
  * the rest, for its Popup.
7
7
  */
8
- export declare function splitPositioner<Props extends object>(props: Props): readonly [Record<string, unknown>, Omit<Props, "anchor" | "side" | "align" | "sideOffset" | "alignOffset" | "collisionPadding" | "collisionAvoidance" | "collisionBoundary" | "sticky" | "positionMethod" | "arrowPadding" | "disableAnchorTracking" | "alignItemWithTrigger">];
8
+ export declare function splitPositioner<Props extends object>(props: Props): readonly [Record<string, unknown>, Omit<Props, "anchor" | "side" | "align" | "collisionAvoidance" | "collisionBoundary" | "sticky" | "positionMethod" | "disableAnchorTracking" | "alignItemWithTrigger">];
9
9
  export {};
@@ -3,3 +3,5 @@ import type { Size } from '../types.js';
3
3
  export declare const SizeContext: import("react").Context<Size | undefined>;
4
4
  /** The size to render at: the component's own prop, else the nearest Root's, else md. */
5
5
  export declare function useSize(size?: Size): Size;
6
+ /** useSize for components without xs: text entry, menus, tabs and tables. An xs inherited from a parent renders them at sm. */
7
+ export declare function useRowSize(size?: Exclude<Size, 'xs'>): Exclude<Size, 'xs'>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The custom properties an app theme sets: the 26 color tokens in
3
+ * docs/color.md and the five shadow tokens in docs/depth.md. A token a theme
4
+ * leaves out keeps its Light value, so an app's tests can check its theme
5
+ * against this list. See docs/color.md#app-themes.
6
+ */
7
+ export declare const themeTokens: readonly ["--mu-canvas", "--mu-surface", "--mu-well", "--mu-hover", "--mu-key", "--mu-key-hover", "--mu-key-sheen", "--mu-edge", "--mu-line", "--mu-overlay", "--mu-ink", "--mu-ink-muted", "--mu-primary", "--mu-primary-hover", "--mu-on-primary", "--mu-accent", "--mu-selection", "--mu-focus", "--mu-success", "--mu-success-soft", "--mu-warning", "--mu-warning-soft", "--mu-danger", "--mu-danger-key", "--mu-danger-soft", "--mu-on-danger", "--mu-shadow-track", "--mu-shadow-key", "--mu-shadow-raised", "--mu-shadow-pressed", "--mu-shadow-pop"];
@@ -1,6 +1,10 @@
1
1
  import type { ReactElement } from 'react';
2
- /** Control size. One value sets height, padding, text, icon size and radius together. */
3
- export type Size = 'sm' | 'md' | 'lg';
2
+ /**
3
+ * Control size. One value sets height, padding, text, icon size and radius
4
+ * together. Only the components listed in docs/layout.md take xs; text entry,
5
+ * menus, tabs and tables take `Exclude<Size, 'xs'>`.
6
+ */
7
+ export type Size = 'xs' | 'sm' | 'md';
4
8
  /** Status tone for components that report a status, such as Badge and toasts. */
5
9
  export type Tone = 'neutral' | 'success' | 'warning' | 'danger';
6
10
  /** A Lucide icon element, such as `<Pin />` from lucide-react. Size and stroke come from the component. */