@amsterdamdatalabs/enact-design-system 0.1.1 → 0.1.7

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 (39) hide show
  1. package/README.md +18 -0
  2. package/dist/components/core/Avatar/Avatar.d.ts +3 -2
  3. package/dist/components/core/Badge/Badge.d.ts +3 -2
  4. package/dist/components/core/Button/Button.d.ts +3 -2
  5. package/dist/components/core/Card/Card.d.ts +3 -2
  6. package/dist/components/core/IconButton/IconButton.d.ts +3 -2
  7. package/dist/components/core/Stat/Stat.d.ts +3 -2
  8. package/dist/components/core/Tag/Tag.d.ts +3 -2
  9. package/dist/components/feedback/Alert/Alert.d.ts +3 -2
  10. package/dist/components/feedback/Progress/Progress.d.ts +3 -2
  11. package/dist/components/feedback/Tooltip/Tooltip.d.ts +3 -2
  12. package/dist/components/forms/Checkbox/Checkbox.d.ts +3 -2
  13. package/dist/components/forms/Field/Field.d.ts +3 -2
  14. package/dist/components/forms/Input/Input.d.ts +3 -2
  15. package/dist/components/forms/Select/Select.d.ts +3 -2
  16. package/dist/components/forms/Switch/Switch.d.ts +3 -2
  17. package/dist/components/layout/Box/Box.d.ts +10 -0
  18. package/dist/components/layout/Box/index.d.ts +1 -0
  19. package/dist/components/layout/Container/Container.d.ts +9 -0
  20. package/dist/components/layout/Container/index.d.ts +1 -0
  21. package/dist/components/layout/Grid/Grid.d.ts +8 -0
  22. package/dist/components/layout/Grid/index.d.ts +1 -0
  23. package/dist/components/layout/Inline/Inline.d.ts +10 -0
  24. package/dist/components/layout/Inline/index.d.ts +1 -0
  25. package/dist/components/layout/Stack/Stack.d.ts +9 -0
  26. package/dist/components/layout/Stack/index.d.ts +1 -0
  27. package/dist/components/layout/scale.d.ts +36 -0
  28. package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts +3 -2
  29. package/dist/components/navigation/Tabs/Tabs.d.ts +3 -2
  30. package/dist/components/system/ThemeProvider/ThemeProvider.d.ts +15 -0
  31. package/dist/components/system/ThemeProvider/index.d.ts +1 -0
  32. package/dist/components/typography/Heading/Heading.d.ts +9 -0
  33. package/dist/components/typography/Heading/index.d.ts +1 -0
  34. package/dist/components/typography/Text/Text.d.ts +12 -0
  35. package/dist/components/typography/Text/index.d.ts +1 -0
  36. package/dist/enact-design-system.css +1 -1
  37. package/dist/index.d.ts +8 -0
  38. package/dist/index.js +1011 -425
  39. package/package.json +1 -1
package/README.md CHANGED
@@ -29,6 +29,24 @@ bun run check # typecheck + lint + test (the pre-merge gate)
29
29
  bun run build # dist/: ESM + .d.ts + design-system.css + tokens.css
30
30
  ```
31
31
 
32
+ ## Local development against a consumer app
33
+
34
+ `dev-install-and-run.sh` builds the library and installs the **real publishable
35
+ tarball** (`bun pm pack`) into a consumer app — so it resolves exactly like a
36
+ registry install (built `dist/` + the `exports` map), not a source symlink. This
37
+ mirrors what apps get from npm, for rapid local iteration.
38
+
39
+ ```bash
40
+ bash dev-install-and-run.sh --target ../net-revenue-demo # build → test → pack → install into the app
41
+ bash dev-install-and-run.sh pack # just build + produce the tarball
42
+ bash dev-install-and-run.sh link # global `bun link`; then `bun link <pkg>` in the app
43
+ bash dev-install-and-run.sh doctor # list exactly what the published tarball contains
44
+ bash dev-install-and-run.sh --dry-run --target ../app # print the plan without running it
45
+ ```
46
+
47
+ Use `--skip-build` to re-pack without reinstalling deps, and `--docs` to launch
48
+ the showcase afterwards.
49
+
32
50
  ## Usage in a product app
33
51
 
34
52
  ```tsx
@@ -1,7 +1,8 @@
1
- import type { HTMLAttributes } from "react";
1
+ import type { HTMLAttributes, Ref } from "react";
2
2
  export interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
3
3
  name?: string;
4
+ ref?: Ref<HTMLSpanElement>;
4
5
  size?: "sm" | "md" | "lg" | "xl";
5
6
  src?: string;
6
7
  }
7
- export declare function Avatar({ name, src, size, className, ...rest }: AvatarProps): import("react").JSX.Element;
8
+ export declare function Avatar({ name, src, size, className, ref, ...rest }: AvatarProps): import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
3
3
  children?: ReactNode;
4
4
  dot?: boolean;
5
+ ref?: Ref<HTMLSpanElement>;
5
6
  tone?: "neutral" | "brand" | "info" | "success" | "warning" | "danger";
6
7
  }
7
- export declare function Badge({ tone, dot, className, children, ...rest }: BadgeProps): import("react").JSX.Element;
8
+ export declare function Badge({ tone, dot, className, children, ref, ...rest }: BadgeProps): import("react").JSX.Element;
@@ -1,10 +1,11 @@
1
- import type { ButtonHTMLAttributes, ReactNode } from "react";
1
+ import type { ButtonHTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "type"> {
3
3
  children?: ReactNode;
4
4
  fullWidth?: boolean;
5
5
  iconLeft?: ReactNode;
6
6
  iconRight?: ReactNode;
7
+ ref?: Ref<HTMLButtonElement>;
7
8
  size?: "sm" | "md" | "lg";
8
9
  variant?: "primary" | "secondary" | "ghost" | "danger";
9
10
  }
10
- export declare function Button({ variant, size, iconLeft, iconRight, fullWidth, disabled, className, children, ...rest }: ButtonProps): import("react").JSX.Element;
11
+ export declare function Button({ variant, size, iconLeft, iconRight, fullWidth, disabled, className, children, ref, ...rest }: ButtonProps): import("react").JSX.Element;
@@ -1,9 +1,10 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface CardProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children?: ReactNode;
4
4
  /** Adds hover elevation + pointer affordance for clickable cards. */
5
5
  interactive?: boolean;
6
6
  padding?: "none" | "sm" | "md" | "lg";
7
+ ref?: Ref<HTMLDivElement>;
7
8
  variant?: "default" | "raised" | "sunken" | "inverse";
8
9
  }
9
- export declare function Card({ variant, padding, interactive, className, children, ...rest }: CardProps): import("react").JSX.Element;
10
+ export declare function Card({ variant, padding, interactive, className, children, ref, ...rest }: CardProps): import("react").JSX.Element;
@@ -1,9 +1,10 @@
1
- import type { ButtonHTMLAttributes, ReactNode } from "react";
1
+ import type { ButtonHTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "type" | "aria-label"> {
3
3
  children?: ReactNode;
4
4
  /** Accessible label — also used as the native tooltip. Required. */
5
5
  label: string;
6
+ ref?: Ref<HTMLButtonElement>;
6
7
  size?: "sm" | "md" | "lg";
7
8
  variant?: "ghost" | "outline" | "primary";
8
9
  }
9
- export declare function IconButton({ label, size, variant, disabled, className, children, ...rest }: IconButtonProps): import("react").JSX.Element;
10
+ export declare function IconButton({ label, size, variant, disabled, className, children, ref, ...rest }: IconButtonProps): import("react").JSX.Element;
@@ -1,9 +1,10 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface StatProps extends HTMLAttributes<HTMLDivElement> {
3
3
  caption?: ReactNode;
4
4
  delta?: ReactNode;
5
5
  deltaDirection?: "up" | "down" | "flat";
6
6
  label: string;
7
+ ref?: Ref<HTMLDivElement>;
7
8
  value: ReactNode;
8
9
  }
9
- export declare function Stat({ label, value, delta, deltaDirection, caption, className, ...rest }: StatProps): import("react").JSX.Element;
10
+ export declare function Stat({ label, value, delta, deltaDirection, caption, className, ref, ...rest }: StatProps): import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
3
3
  children?: ReactNode;
4
4
  /** When provided, renders a remove (×) button that calls this handler. */
5
5
  onRemove?: () => void;
6
+ ref?: Ref<HTMLSpanElement>;
6
7
  }
7
- export declare function Tag({ onRemove, className, children, ...rest }: TagProps): import("react").JSX.Element;
8
+ export declare function Tag({ onRemove, className, children, ref, ...rest }: TagProps): import("react").JSX.Element;
@@ -1,9 +1,10 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export type AlertTone = "info" | "success" | "warning" | "danger";
3
3
  export interface AlertProps extends HTMLAttributes<HTMLDivElement> {
4
4
  children?: ReactNode;
5
5
  onDismiss?: () => void;
6
+ ref?: Ref<HTMLDivElement>;
6
7
  title?: string;
7
8
  tone?: AlertTone;
8
9
  }
9
- export declare function Alert({ tone, title, onDismiss, className, children, ...rest }: AlertProps): import("react").JSX.Element;
10
+ export declare function Alert({ tone, title, onDismiss, className, children, ref, ...rest }: AlertProps): import("react").JSX.Element;
@@ -1,10 +1,11 @@
1
- import type { HTMLAttributes } from "react";
1
+ import type { HTMLAttributes, Ref } from "react";
2
2
  export type ProgressTone = "brand" | "success" | "warning" | "danger" | "accent";
3
3
  export interface ProgressProps extends HTMLAttributes<HTMLDivElement> {
4
4
  label?: string;
5
5
  max?: number;
6
+ ref?: Ref<HTMLDivElement>;
6
7
  showValue?: boolean;
7
8
  tone?: ProgressTone;
8
9
  value?: number;
9
10
  }
10
- export declare function Progress({ value, max, tone, label, showValue, className, ...rest }: ProgressProps): import("react").JSX.Element;
11
+ export declare function Progress({ value, max, tone, label, showValue, className, ref, ...rest }: ProgressProps): import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface TooltipProps extends Omit<HTMLAttributes<HTMLSpanElement>, "content"> {
3
3
  children?: ReactNode;
4
4
  content: ReactNode;
5
5
  placement?: "top" | "bottom" | "left" | "right";
6
+ ref?: Ref<HTMLSpanElement>;
6
7
  }
7
- export declare function Tooltip({ content, placement, className, children, ...rest }: TooltipProps): import("react").JSX.Element;
8
+ export declare function Tooltip({ content, placement, className, children, ref, ...rest }: TooltipProps): import("react").JSX.Element;
@@ -1,9 +1,10 @@
1
- import { type ChangeEvent, type LabelHTMLAttributes, type ReactNode } from "react";
1
+ import { type ChangeEvent, type LabelHTMLAttributes, type ReactNode, type Ref } from "react";
2
2
  export interface CheckboxProps extends Omit<LabelHTMLAttributes<HTMLLabelElement>, "onChange"> {
3
3
  checked?: boolean;
4
4
  defaultChecked?: boolean;
5
5
  disabled?: boolean;
6
6
  label?: ReactNode;
7
7
  onChange?: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
8
+ ref?: Ref<HTMLInputElement>;
8
9
  }
9
- export declare function Checkbox({ checked, defaultChecked, onChange, label, disabled, className, ...rest }: CheckboxProps): import("react").JSX.Element;
10
+ export declare function Checkbox({ checked, defaultChecked, onChange, label, disabled, className, ref, ...rest }: CheckboxProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
2
  export interface FieldProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children?: ReactNode;
4
4
  error?: string;
@@ -6,6 +6,7 @@ export interface FieldProps extends HTMLAttributes<HTMLDivElement> {
6
6
  /** Forwarded to the label's `for` attribute. */
7
7
  htmlFor?: string;
8
8
  label?: string;
9
+ ref?: Ref<HTMLDivElement>;
9
10
  required?: boolean;
10
11
  }
11
- export declare function Field({ label, hint, error, required, htmlFor, className, children, ...rest }: FieldProps): import("react").JSX.Element;
12
+ export declare function Field({ label, hint, error, required, htmlFor, className, children, ref, ...rest }: FieldProps): import("react").JSX.Element;
@@ -1,6 +1,7 @@
1
- import type { InputHTMLAttributes } from "react";
1
+ import type { InputHTMLAttributes, Ref } from "react";
2
2
  export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
3
3
  invalid?: boolean;
4
+ ref?: Ref<HTMLInputElement>;
4
5
  size?: "sm" | "md" | "lg";
5
6
  }
6
- export declare function Input({ size, invalid, disabled, className, ...rest }: InputProps): import("react").JSX.Element;
7
+ export declare function Input({ size, invalid, disabled, className, ref, ...rest }: InputProps): import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
- import type { ReactNode, SelectHTMLAttributes } from "react";
1
+ import type { ReactNode, Ref, SelectHTMLAttributes } from "react";
2
2
  export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "size"> {
3
3
  children?: ReactNode;
4
4
  invalid?: boolean;
5
+ ref?: Ref<HTMLSelectElement>;
5
6
  size?: "sm" | "md" | "lg";
6
7
  }
7
- export declare function Select({ size, invalid, disabled, className, children, ...rest }: SelectProps): import("react").JSX.Element;
8
+ export declare function Select({ size, invalid, disabled, className, children, ref, ...rest }: SelectProps): import("react").JSX.Element;
@@ -1,9 +1,10 @@
1
- import { type ChangeEvent, type LabelHTMLAttributes, type ReactNode } from "react";
1
+ import { type ChangeEvent, type LabelHTMLAttributes, type ReactNode, type Ref } from "react";
2
2
  export interface SwitchProps extends Omit<LabelHTMLAttributes<HTMLLabelElement>, "onChange"> {
3
3
  checked?: boolean;
4
4
  defaultChecked?: boolean;
5
5
  disabled?: boolean;
6
6
  label?: ReactNode;
7
7
  onChange?: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
8
+ ref?: Ref<HTMLInputElement>;
8
9
  }
9
- export declare function Switch({ checked, defaultChecked, onChange, label, disabled, className, ...rest }: SwitchProps): import("react").JSX.Element;
10
+ export declare function Switch({ checked, defaultChecked, onChange, label, disabled, className, ref, ...rest }: SwitchProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ import type { Space } from "../scale";
3
+ export interface BoxProps extends HTMLAttributes<HTMLDivElement> {
4
+ border?: boolean;
5
+ padding?: Space;
6
+ radius?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "full";
7
+ ref?: Ref<HTMLDivElement>;
8
+ surface?: "default" | "raised" | "sunken";
9
+ }
10
+ export declare function Box({ padding, radius, surface, border, className, children, ref, ...rest }: BoxProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Box, type BoxProps } from "./Box";
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ import type { Space } from "../scale";
3
+ export interface ContainerProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** Horizontal padding (padding-inline). */
5
+ gutter?: Space;
6
+ ref?: Ref<HTMLDivElement>;
7
+ width?: "max" | "narrow";
8
+ }
9
+ export declare function Container({ width, gutter, className, children, ref, ...rest }: ContainerProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Container, type ContainerProps } from "./Container";
@@ -0,0 +1,8 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ import { type Space } from "../scale";
3
+ export interface GridProps extends HTMLAttributes<HTMLDivElement> {
4
+ columns?: 1 | 2 | 3 | 4 | 6 | 12;
5
+ gap?: Space;
6
+ ref?: Ref<HTMLDivElement>;
7
+ }
8
+ export declare function Grid({ columns, gap, className, children, ref, ...rest }: GridProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Grid, type GridProps } from "./Grid";
@@ -0,0 +1,10 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ import { type Align, type Justify, type Space } from "../scale";
3
+ export interface InlineProps extends HTMLAttributes<HTMLDivElement> {
4
+ align?: Align;
5
+ gap?: Space;
6
+ justify?: Justify;
7
+ ref?: Ref<HTMLDivElement>;
8
+ wrap?: boolean;
9
+ }
10
+ export declare function Inline({ gap, align, justify, wrap, className, children, ref, ...rest }: InlineProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Inline, type InlineProps } from "./Inline";
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ import { type Align, type Justify, type Space } from "../scale";
3
+ export interface StackProps extends HTMLAttributes<HTMLDivElement> {
4
+ align?: Align;
5
+ gap?: Space;
6
+ justify?: Justify;
7
+ ref?: Ref<HTMLDivElement>;
8
+ }
9
+ export declare function Stack({ gap, align, justify, className, children, ref, ...rest }: StackProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Stack, type StackProps } from "./Stack";
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shared scales for layout primitives. Keep these unions in sync with the
3
+ * spacing tokens (--space-0…16) and flex/grid alignment keywords so every
4
+ * primitive speaks the same vocabulary.
5
+ */
6
+ export type Space = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "8" | "10" | "12" | "16";
7
+ export type Align = "start" | "center" | "end" | "stretch";
8
+ export type Justify = "start" | "center" | "end" | "between";
9
+ /** prop union → CSS-module gap class name (defined per module). */
10
+ export declare const gapClass: {
11
+ readonly "0": "gap0";
12
+ readonly "1": "gap1";
13
+ readonly "2": "gap2";
14
+ readonly "3": "gap3";
15
+ readonly "4": "gap4";
16
+ readonly "5": "gap5";
17
+ readonly "6": "gap6";
18
+ readonly "8": "gap8";
19
+ readonly "10": "gap10";
20
+ readonly "12": "gap12";
21
+ readonly "16": "gap16";
22
+ };
23
+ /** prop union → CSS-module align class name (defined per module). */
24
+ export declare const alignClass: {
25
+ readonly start: "alignStart";
26
+ readonly center: "alignCenter";
27
+ readonly end: "alignEnd";
28
+ readonly stretch: "alignStretch";
29
+ };
30
+ /** prop union → CSS-module justify class name (defined per module). */
31
+ export declare const justifyClass: {
32
+ readonly start: "justifyStart";
33
+ readonly center: "justifyCenter";
34
+ readonly end: "justifyEnd";
35
+ readonly between: "justifyBetween";
36
+ };
@@ -1,4 +1,4 @@
1
- import type { HTMLAttributes, MouseEventHandler } from "react";
1
+ import type { HTMLAttributes, MouseEventHandler, Ref } from "react";
2
2
  export interface BreadcrumbItem {
3
3
  href?: string;
4
4
  label: string;
@@ -6,5 +6,6 @@ export interface BreadcrumbItem {
6
6
  }
7
7
  export interface BreadcrumbProps extends HTMLAttributes<HTMLElement> {
8
8
  items: BreadcrumbItem[];
9
+ ref?: Ref<HTMLElement>;
9
10
  }
10
- export declare function Breadcrumb({ items, className, ...rest }: BreadcrumbProps): import("react").JSX.Element;
11
+ export declare function Breadcrumb({ items, className, ref, ...rest }: BreadcrumbProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes } from "react";
1
+ import { type HTMLAttributes, type Ref } from "react";
2
2
  export interface TabItem {
3
3
  /** Optional count pill rendered after the label. */
4
4
  count?: number;
@@ -10,6 +10,7 @@ export interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChang
10
10
  defaultActive?: string;
11
11
  items: TabItem[];
12
12
  onChange?: (id: string) => void;
13
+ ref?: Ref<HTMLDivElement>;
13
14
  size?: "sm" | "md";
14
15
  }
15
- export declare function Tabs({ items, active, defaultActive, onChange, size, className, ...rest }: TabsProps): import("react").JSX.Element;
16
+ export declare function Tabs({ items, active, defaultActive, onChange, size, className, ref, ...rest }: TabsProps): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from "react";
2
+ export type Theme = "light" | "dark" | "system";
3
+ export type ResolvedTheme = "light" | "dark";
4
+ export interface ThemeContextValue {
5
+ resolvedTheme: ResolvedTheme;
6
+ setTheme: (theme: Theme) => void;
7
+ theme: Theme;
8
+ }
9
+ export interface ThemeProviderProps {
10
+ children: ReactNode;
11
+ defaultTheme?: Theme;
12
+ storageKey?: string;
13
+ }
14
+ export declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): import("react").JSX.Element;
15
+ export declare function useTheme(): ThemeContextValue;
@@ -0,0 +1 @@
1
+ export { type ResolvedTheme, type Theme, type ThemeContextValue, ThemeProvider, type ThemeProviderProps, useTheme, } from "./ThemeProvider";
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ export interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {
3
+ level: 1 | 2 | 3 | 4 | 5 | 6;
4
+ ref?: Ref<HTMLHeadingElement>;
5
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
6
+ tone?: "primary" | "secondary" | "muted" | "inverse" | "link";
7
+ weight?: "regular" | "medium" | "semibold" | "bold";
8
+ }
9
+ export declare function Heading({ level, size, tone, weight, className, children, ref, ...rest }: HeadingProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Heading, type HeadingProps } from "./Heading";
@@ -0,0 +1,12 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ export interface TextProps extends HTMLAttributes<HTMLElement> {
3
+ align?: "start" | "center" | "end";
4
+ as?: "p" | "span" | "div";
5
+ font?: "body" | "display" | "mono";
6
+ leading?: "tight" | "snug" | "normal" | "relaxed";
7
+ ref?: Ref<HTMLElement>;
8
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
9
+ tone?: "primary" | "secondary" | "muted" | "inverse" | "link";
10
+ weight?: "regular" | "medium" | "semibold" | "bold";
11
+ }
12
+ export declare function Text({ as, align, font, leading, size, tone, weight, className, children, ref, ...rest }: TextProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Text, type TextProps } from "./Text";
@@ -1 +1 @@
1
- ._avatar_yqge8_1{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;font-family:var(--font-display);font-weight:var(--weight-semibold);color:var(--adl-teal-800);background:var(--adl-teal-100);border-radius:var(--radius-full)}._hasImage_yqge8_15{background:var(--bg-muted)}._img_yqge8_19{width:100%;height:100%;object-fit:cover}._sm_yqge8_26{width:28px;height:28px;font-size:11px}._md_yqge8_31{width:36px;height:36px;font-size:14px}._lg_yqge8_36{width:48px;height:48px;font-size:18px}._xl_yqge8_41{width:64px;height:64px;font-size:24px}._badge_1ndhf_1{display:inline-flex;gap:var(--space-1-5);align-items:center;height:22px;padding:0 var(--space-2);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1;white-space:nowrap;border-radius:var(--radius-xs)}._dot_1ndhf_15{width:6px;height:6px;background:currentColor;border-radius:var(--radius-full)}._neutral_1ndhf_23{color:var(--text-secondary);background:var(--bg-muted)}._brand_1ndhf_27{color:var(--tint-brand-fg);background:var(--brand-primary-subtle)}._info_1ndhf_31{color:var(--tint-info-fg);background:var(--feedback-info-subtle)}._success_1ndhf_35{color:var(--tint-success-fg);background:var(--feedback-success-subtle)}._warning_1ndhf_39{color:var(--tint-warning-fg);background:var(--feedback-warning-subtle)}._danger_1ndhf_43{color:var(--tint-danger-fg);background:var(--feedback-danger-subtle)}._btn_1m6dq_1{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:var(--weight-semibold);line-height:1;white-space:nowrap;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out)}._btn_1m6dq_1:disabled{cursor:not-allowed;opacity:.45}._fullWidth_1m6dq_20{display:flex;width:100%}._sm_1m6dq_26{gap:var(--space-1-5);height:32px;padding:0 var(--space-3);font-size:var(--text-xs)}._md_1m6dq_32{gap:var(--space-2);height:40px;padding:0 var(--space-4);font-size:var(--text-sm)}._lg_1m6dq_38{gap:var(--space-2-5);height:48px;padding:0 var(--space-6);font-size:var(--text-md)}._primary_1m6dq_46{color:var(--text-on-brand);background:var(--brand-primary)}._primary_1m6dq_46:hover:not(:disabled){background:var(--brand-primary-hover)}._primary_1m6dq_46:active:not(:disabled){background:var(--brand-primary-active)}._secondary_1m6dq_57{color:var(--text-primary);background:var(--surface-default);border-color:var(--border-strong)}._secondary_1m6dq_57:hover:not(:disabled){background:var(--bg-subtle)}._secondary_1m6dq_57:active:not(:disabled){background:var(--bg-muted)}._ghost_1m6dq_71{color:var(--text-secondary);background:transparent}._ghost_1m6dq_71:hover:not(:disabled){background:var(--bg-subtle)}._ghost_1m6dq_71:active:not(:disabled){background:var(--bg-muted)}._danger_1m6dq_82{color:var(--text-inverse);background:var(--feedback-danger)}._danger_1m6dq_82:hover:not(:disabled){background:var(--adl-red-600)}._danger_1m6dq_82:active:not(:disabled){background:var(--adl-red-700)}._card_1tzae_1{border-radius:var(--radius-md);transition:box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}._padNone_1tzae_9{padding:0}._padSm_1tzae_12{padding:var(--space-4)}._padMd_1tzae_15{padding:var(--space-6)}._padLg_1tzae_18{padding:var(--space-8)}._default_1tzae_23{background:var(--surface-default);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs)}._raised_1tzae_28{background:var(--surface-default);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}._sunken_1tzae_33{background:var(--surface-sunken);border:1px solid var(--border-subtle);box-shadow:none}._inverse_1tzae_38{--text-primary: var(--adl-neutral-50);--text-secondary: var(--adl-blue-200);--text-muted: var(--adl-navy-300);color:var(--text-primary);background:var(--adl-navy-900);border:1px solid var(--adl-navy-700);box-shadow:var(--shadow-sm)}._interactive_1tzae_49{cursor:pointer}._interactive_1tzae_49:hover{border-color:var(--border-default);box-shadow:var(--shadow-md)}._btn_2g73d_1{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out)}._btn_2g73d_1:disabled{cursor:not-allowed;opacity:.45}._sm_2g73d_17{width:28px;height:28px}._md_2g73d_21{width:36px;height:36px}._lg_2g73d_25{width:44px;height:44px}._ghost_2g73d_31{color:var(--text-secondary);background:transparent}._ghost_2g73d_31:hover:not(:disabled){background:var(--bg-subtle)}._outline_2g73d_39{color:var(--text-secondary);background:var(--surface-default);border-color:var(--border-strong)}._outline_2g73d_39:hover:not(:disabled){background:var(--bg-subtle)}._primary_2g73d_48{color:var(--text-on-brand);background:var(--brand-primary)}._primary_2g73d_48:hover:not(:disabled){background:var(--brand-primary-hover)}._stat_1uc8c_1{display:flex;flex-direction:column;gap:var(--space-1)}._label_1uc8c_7{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide)}._valueRow_1uc8c_16{display:flex;gap:var(--space-2);align-items:baseline}._value_1uc8c_16{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text-primary);letter-spacing:var(--tracking-tight)}._delta_1uc8c_31{display:inline-flex;gap:3px;align-items:center;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold)}._deltaUp_1uc8c_40{color:var(--feedback-success)}._deltaDown_1uc8c_43{color:var(--feedback-danger)}._deltaFlat_1uc8c_46{color:var(--text-muted)}._flip_1uc8c_50{transform:scaleY(-1)}._caption_1uc8c_54{font-size:var(--text-xs);color:var(--text-muted)}._tag_11jaq_1{display:inline-flex;gap:var(--space-1-5);align-items:center;height:26px;padding:0 var(--space-2-5);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1;color:var(--text-secondary);white-space:nowrap;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-full)}._remove_11jaq_18{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;line-height:1;color:inherit;cursor:pointer;background:transparent;border:none;border-radius:var(--radius-full)}._remove_11jaq_18:hover{background:var(--bg-muted)}._alert_1217n_1{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--alert-fg);background:var(--alert-bg);border:1px solid;border-color:color-mix(in srgb,var(--alert-border) 40%,transparent);border-radius:var(--radius-sm)}._icon_1217n_16{flex-shrink:0;margin-top:1px;color:var(--alert-border)}._body_1217n_22{flex:1}._title_1217n_26{font-weight:var(--weight-bold)}._titleSpaced_1217n_29{margin-bottom:2px}._dismiss_1217n_33{display:inline-flex;align-items:center;height:20px;padding:2px;color:inherit;cursor:pointer;background:transparent;border:none}._info_1217n_45{--alert-border: var(--feedback-info);--alert-bg: var(--feedback-info-subtle);--alert-fg: var(--tint-info-fg)}._success_1217n_50{--alert-border: var(--feedback-success);--alert-bg: var(--feedback-success-subtle);--alert-fg: var(--tint-success-fg)}._warning_1217n_55{--alert-border: var(--feedback-warning);--alert-bg: var(--feedback-warning-subtle);--alert-fg: var(--tint-warning-fg)}._danger_1217n_60{--alert-border: var(--feedback-danger);--alert-bg: var(--feedback-danger-subtle);--alert-fg: var(--tint-danger-fg)}._progress_tptlj_1{display:flex;flex-direction:column;gap:var(--space-1-5)}._header_tptlj_7{display:flex;justify-content:space-between;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary)}._percent_tptlj_16{font-family:var(--font-mono)}._track_tptlj_20{height:6px;overflow:hidden;background:var(--bg-muted);border-radius:var(--radius-full)}._fill_tptlj_27{height:100%;border-radius:var(--radius-full);transition:width var(--duration-slow) var(--ease-out)}._brand_tptlj_34{background:var(--brand-primary)}._success_tptlj_37{background:var(--feedback-success)}._warning_tptlj_40{background:var(--feedback-warning)}._danger_tptlj_43{background:var(--feedback-danger)}._accent_tptlj_46{background:var(--brand-accent)}._wrap_82rh0_1{position:relative;display:inline-flex}._tip_82rh0_6{position:absolute;z-index:var(--z-tooltip);visibility:hidden;padding:6px 10px;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.4;color:var(--text-inverse);white-space:nowrap;pointer-events:none;background:var(--bg-inverse);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);opacity:0;transition:opacity var(--duration-fast) var(--ease-out),visibility var(--duration-fast) var(--ease-out)}._wrap_82rh0_1:hover ._tip_82rh0_6,._wrap_82rh0_1:focus-within ._tip_82rh0_6{visibility:visible;opacity:1}._top_82rh0_34{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}._bottom_82rh0_39{top:calc(100% + 8px);left:50%;transform:translate(-50%)}._left_82rh0_44{top:50%;right:calc(100% + 8px);transform:translateY(-50%)}._right_82rh0_49{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}._root_1t9ke_1{display:inline-flex;gap:var(--space-2);align-items:center;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}._disabled_1t9ke_12{cursor:not-allowed;opacity:.45}._input_1t9ke_18{position:absolute;width:0;height:0;opacity:0}._box_1t9ke_25{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:18px;height:18px;background:var(--surface-default);border:1px solid var(--border-strong);border-radius:var(--radius-xs);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}._checked_1t9ke_40{background:var(--brand-primary);border-color:var(--brand-primary)}._input_1t9ke_18:focus-visible+._box_1t9ke_25{box-shadow:var(--shadow-focus)}._field_1d54c_1{display:flex;flex-direction:column;gap:var(--space-1-5)}._label_1d54c_7{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}._required_1d54c_14{color:var(--feedback-danger)}._error_1d54c_18{font-size:var(--text-xs);color:var(--feedback-danger)}._hint_1d54c_23{font-size:var(--text-xs);color:var(--text-muted)}._input_nhfx3_1{box-sizing:border-box;width:100%;padding:0 var(--space-3);font-family:var(--font-body);color:var(--text-primary);outline:none;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}._input_nhfx3_1::placeholder{color:var(--text-muted)}._input_nhfx3_1:focus{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}._input_nhfx3_1:disabled{cursor:not-allowed;background:var(--bg-muted);opacity:.6}._invalid_nhfx3_31,._invalid_nhfx3_31:focus{border-color:var(--feedback-danger)}._sm_nhfx3_37{height:32px;font-size:var(--text-xs)}._md_nhfx3_41{height:40px;font-size:var(--text-sm)}._lg_nhfx3_45{height:48px;font-size:var(--text-sm)}._wrap_1nxaj_1{position:relative;display:inline-flex;width:100%}._select_1nxaj_7{box-sizing:border-box;width:100%;padding:0 var(--space-8) 0 var(--space-3);font-family:var(--font-body);color:var(--text-primary);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}._select_1nxaj_7:focus{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}._select_1nxaj_7:disabled{cursor:not-allowed;background:var(--bg-muted);opacity:.6}._invalid_1nxaj_36,._invalid_1nxaj_36:focus{border-color:var(--feedback-danger)}._chevron_1nxaj_41{position:absolute;top:50%;right:10px;color:var(--text-muted);pointer-events:none;transform:translateY(-50%)}._sm_1nxaj_51{height:32px;font-size:var(--text-xs)}._md_1nxaj_55{height:40px;font-size:var(--text-sm)}._lg_1nxaj_59{height:48px;font-size:var(--text-sm)}._root_ctdye_1{display:inline-flex;gap:var(--space-2);align-items:center;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}._disabled_ctdye_12{cursor:not-allowed;opacity:.45}._input_ctdye_17{position:absolute;width:0;height:0;opacity:0}._track_ctdye_24{position:relative;flex-shrink:0;width:36px;height:20px;background:var(--adl-neutral-300);border-radius:var(--radius-full);transition:background var(--duration-base) var(--ease-out)}._on_ctdye_34{background:var(--brand-primary)}._knob_ctdye_38{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--adl-neutral-0);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:left var(--duration-base) var(--ease-out)}._on_ctdye_34 ._knob_ctdye_38{left:18px}._input_ctdye_17:focus-visible+._track_ctdye_24{box-shadow:var(--shadow-focus)}._list_1e7it_1{display:flex;gap:var(--space-1-5);align-items:center;padding:0;margin:0;font-family:var(--font-body);font-size:var(--text-sm);list-style:none}._item_1e7it_12{display:flex;gap:var(--space-1-5);align-items:center}._current_1e7it_18{font-weight:var(--weight-semibold);color:var(--text-primary)}._link_1e7it_23{color:var(--text-muted);text-decoration:none}._link_1e7it_23:hover{color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px}._sep_1e7it_34{color:var(--adl-neutral-400)}._tablist_1khzs_1{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle)}._tab_1khzs_1{display:inline-flex;gap:var(--space-1-5);align-items:center;margin-bottom:-1px;font-family:var(--font-body);font-weight:var(--weight-semibold);color:var(--text-muted);cursor:pointer;background:transparent;border:none;border-bottom:2px solid transparent;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}._tab_1khzs_1:hover:not(._active_1khzs_24){color:var(--text-secondary)}._active_1khzs_24{color:var(--text-primary);border-bottom-color:var(--brand-primary)}._sm_1khzs_34{padding:var(--space-2) var(--space-2-5);font-size:var(--text-xs)}._md_1khzs_38{padding:var(--space-2-5) 14px;font-size:var(--text-sm)}._count_1khzs_44{padding:2px 6px;font-size:11px;line-height:1;color:var(--text-muted);background:var(--bg-muted);border-radius:var(--radius-full)}._countActive_1khzs_53{color:var(--tint-brand-fg);background:var(--brand-primary-subtle)}
1
+ ._avatar_yqge8_1{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;font-family:var(--font-display);font-weight:var(--weight-semibold);color:var(--adl-teal-800);background:var(--adl-teal-100);border-radius:var(--radius-full)}._hasImage_yqge8_15{background:var(--bg-muted)}._img_yqge8_19{width:100%;height:100%;object-fit:cover}._sm_yqge8_26{width:28px;height:28px;font-size:11px}._md_yqge8_31{width:36px;height:36px;font-size:14px}._lg_yqge8_36{width:48px;height:48px;font-size:18px}._xl_yqge8_41{width:64px;height:64px;font-size:24px}._badge_1ndhf_1{display:inline-flex;gap:var(--space-1-5);align-items:center;height:22px;padding:0 var(--space-2);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1;white-space:nowrap;border-radius:var(--radius-xs)}._dot_1ndhf_15{width:6px;height:6px;background:currentColor;border-radius:var(--radius-full)}._neutral_1ndhf_23{color:var(--text-secondary);background:var(--bg-muted)}._brand_1ndhf_27{color:var(--tint-brand-fg);background:var(--brand-primary-subtle)}._info_1ndhf_31{color:var(--tint-info-fg);background:var(--feedback-info-subtle)}._success_1ndhf_35{color:var(--tint-success-fg);background:var(--feedback-success-subtle)}._warning_1ndhf_39{color:var(--tint-warning-fg);background:var(--feedback-warning-subtle)}._danger_1ndhf_43{color:var(--tint-danger-fg);background:var(--feedback-danger-subtle)}._btn_1m6dq_1{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:var(--weight-semibold);line-height:1;white-space:nowrap;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out)}._btn_1m6dq_1:disabled{cursor:not-allowed;opacity:.45}._fullWidth_1m6dq_20{display:flex;width:100%}._sm_1m6dq_26{gap:var(--space-1-5);height:32px;padding:0 var(--space-3);font-size:var(--text-xs)}._md_1m6dq_32{gap:var(--space-2);height:40px;padding:0 var(--space-4);font-size:var(--text-sm)}._lg_1m6dq_38{gap:var(--space-2-5);height:48px;padding:0 var(--space-6);font-size:var(--text-md)}._primary_1m6dq_46{color:var(--text-on-brand);background:var(--brand-primary)}._primary_1m6dq_46:hover:not(:disabled){background:var(--brand-primary-hover)}._primary_1m6dq_46:active:not(:disabled){background:var(--brand-primary-active)}._secondary_1m6dq_57{color:var(--text-primary);background:var(--surface-default);border-color:var(--border-strong)}._secondary_1m6dq_57:hover:not(:disabled){background:var(--bg-subtle)}._secondary_1m6dq_57:active:not(:disabled){background:var(--bg-muted)}._ghost_1m6dq_71{color:var(--text-secondary);background:transparent}._ghost_1m6dq_71:hover:not(:disabled){background:var(--bg-subtle)}._ghost_1m6dq_71:active:not(:disabled){background:var(--bg-muted)}._danger_1m6dq_82{color:var(--text-inverse);background:var(--feedback-danger)}._danger_1m6dq_82:hover:not(:disabled){background:var(--adl-red-600)}._danger_1m6dq_82:active:not(:disabled){background:var(--adl-red-700)}._card_1tzae_1{border-radius:var(--radius-md);transition:box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}._padNone_1tzae_9{padding:0}._padSm_1tzae_12{padding:var(--space-4)}._padMd_1tzae_15{padding:var(--space-6)}._padLg_1tzae_18{padding:var(--space-8)}._default_1tzae_23{background:var(--surface-default);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs)}._raised_1tzae_28{background:var(--surface-default);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}._sunken_1tzae_33{background:var(--surface-sunken);border:1px solid var(--border-subtle);box-shadow:none}._inverse_1tzae_38{--text-primary: var(--adl-neutral-50);--text-secondary: var(--adl-blue-200);--text-muted: var(--adl-navy-300);color:var(--text-primary);background:var(--adl-navy-900);border:1px solid var(--adl-navy-700);box-shadow:var(--shadow-sm)}._interactive_1tzae_49{cursor:pointer}._interactive_1tzae_49:hover{border-color:var(--border-default);box-shadow:var(--shadow-md)}._btn_2g73d_1{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out)}._btn_2g73d_1:disabled{cursor:not-allowed;opacity:.45}._sm_2g73d_17{width:28px;height:28px}._md_2g73d_21{width:36px;height:36px}._lg_2g73d_25{width:44px;height:44px}._ghost_2g73d_31{color:var(--text-secondary);background:transparent}._ghost_2g73d_31:hover:not(:disabled){background:var(--bg-subtle)}._outline_2g73d_39{color:var(--text-secondary);background:var(--surface-default);border-color:var(--border-strong)}._outline_2g73d_39:hover:not(:disabled){background:var(--bg-subtle)}._primary_2g73d_48{color:var(--text-on-brand);background:var(--brand-primary)}._primary_2g73d_48:hover:not(:disabled){background:var(--brand-primary-hover)}._stat_1uc8c_1{display:flex;flex-direction:column;gap:var(--space-1)}._label_1uc8c_7{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide)}._valueRow_1uc8c_16{display:flex;gap:var(--space-2);align-items:baseline}._value_1uc8c_16{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text-primary);letter-spacing:var(--tracking-tight)}._delta_1uc8c_31{display:inline-flex;gap:3px;align-items:center;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold)}._deltaUp_1uc8c_40{color:var(--feedback-success)}._deltaDown_1uc8c_43{color:var(--feedback-danger)}._deltaFlat_1uc8c_46{color:var(--text-muted)}._flip_1uc8c_50{transform:scaleY(-1)}._caption_1uc8c_54{font-size:var(--text-xs);color:var(--text-muted)}._tag_11jaq_1{display:inline-flex;gap:var(--space-1-5);align-items:center;height:26px;padding:0 var(--space-2-5);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1;color:var(--text-secondary);white-space:nowrap;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-full)}._remove_11jaq_18{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;line-height:1;color:inherit;cursor:pointer;background:transparent;border:none;border-radius:var(--radius-full)}._remove_11jaq_18:hover{background:var(--bg-muted)}._alert_1217n_1{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--alert-fg);background:var(--alert-bg);border:1px solid;border-color:color-mix(in srgb,var(--alert-border) 40%,transparent);border-radius:var(--radius-sm)}._icon_1217n_16{flex-shrink:0;margin-top:1px;color:var(--alert-border)}._body_1217n_22{flex:1}._title_1217n_26{font-weight:var(--weight-bold)}._titleSpaced_1217n_29{margin-bottom:2px}._dismiss_1217n_33{display:inline-flex;align-items:center;height:20px;padding:2px;color:inherit;cursor:pointer;background:transparent;border:none}._info_1217n_45{--alert-border: var(--feedback-info);--alert-bg: var(--feedback-info-subtle);--alert-fg: var(--tint-info-fg)}._success_1217n_50{--alert-border: var(--feedback-success);--alert-bg: var(--feedback-success-subtle);--alert-fg: var(--tint-success-fg)}._warning_1217n_55{--alert-border: var(--feedback-warning);--alert-bg: var(--feedback-warning-subtle);--alert-fg: var(--tint-warning-fg)}._danger_1217n_60{--alert-border: var(--feedback-danger);--alert-bg: var(--feedback-danger-subtle);--alert-fg: var(--tint-danger-fg)}._progress_tptlj_1{display:flex;flex-direction:column;gap:var(--space-1-5)}._header_tptlj_7{display:flex;justify-content:space-between;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary)}._percent_tptlj_16{font-family:var(--font-mono)}._track_tptlj_20{height:6px;overflow:hidden;background:var(--bg-muted);border-radius:var(--radius-full)}._fill_tptlj_27{height:100%;border-radius:var(--radius-full);transition:width var(--duration-slow) var(--ease-out)}._brand_tptlj_34{background:var(--brand-primary)}._success_tptlj_37{background:var(--feedback-success)}._warning_tptlj_40{background:var(--feedback-warning)}._danger_tptlj_43{background:var(--feedback-danger)}._accent_tptlj_46{background:var(--brand-accent)}._wrap_82rh0_1{position:relative;display:inline-flex}._tip_82rh0_6{position:absolute;z-index:var(--z-tooltip);visibility:hidden;padding:6px 10px;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.4;color:var(--text-inverse);white-space:nowrap;pointer-events:none;background:var(--bg-inverse);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);opacity:0;transition:opacity var(--duration-fast) var(--ease-out),visibility var(--duration-fast) var(--ease-out)}._wrap_82rh0_1:hover ._tip_82rh0_6,._wrap_82rh0_1:focus-within ._tip_82rh0_6{visibility:visible;opacity:1}._top_82rh0_34{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}._bottom_82rh0_39{top:calc(100% + 8px);left:50%;transform:translate(-50%)}._left_82rh0_44{top:50%;right:calc(100% + 8px);transform:translateY(-50%)}._right_82rh0_49{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}._root_1t9ke_1{display:inline-flex;gap:var(--space-2);align-items:center;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}._disabled_1t9ke_12{cursor:not-allowed;opacity:.45}._input_1t9ke_18{position:absolute;width:0;height:0;opacity:0}._box_1t9ke_25{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:18px;height:18px;background:var(--surface-default);border:1px solid var(--border-strong);border-radius:var(--radius-xs);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}._checked_1t9ke_40{background:var(--brand-primary);border-color:var(--brand-primary)}._input_1t9ke_18:focus-visible+._box_1t9ke_25{box-shadow:var(--shadow-focus)}._field_1d54c_1{display:flex;flex-direction:column;gap:var(--space-1-5)}._label_1d54c_7{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}._required_1d54c_14{color:var(--feedback-danger)}._error_1d54c_18{font-size:var(--text-xs);color:var(--feedback-danger)}._hint_1d54c_23{font-size:var(--text-xs);color:var(--text-muted)}._input_nhfx3_1{box-sizing:border-box;width:100%;padding:0 var(--space-3);font-family:var(--font-body);color:var(--text-primary);outline:none;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}._input_nhfx3_1::placeholder{color:var(--text-muted)}._input_nhfx3_1:focus{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}._input_nhfx3_1:disabled{cursor:not-allowed;background:var(--bg-muted);opacity:.6}._invalid_nhfx3_31,._invalid_nhfx3_31:focus{border-color:var(--feedback-danger)}._sm_nhfx3_37{height:32px;font-size:var(--text-xs)}._md_nhfx3_41{height:40px;font-size:var(--text-sm)}._lg_nhfx3_45{height:48px;font-size:var(--text-sm)}._wrap_1nxaj_1{position:relative;display:inline-flex;width:100%}._select_1nxaj_7{box-sizing:border-box;width:100%;padding:0 var(--space-8) 0 var(--space-3);font-family:var(--font-body);color:var(--text-primary);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}._select_1nxaj_7:focus{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}._select_1nxaj_7:disabled{cursor:not-allowed;background:var(--bg-muted);opacity:.6}._invalid_1nxaj_36,._invalid_1nxaj_36:focus{border-color:var(--feedback-danger)}._chevron_1nxaj_41{position:absolute;top:50%;right:10px;color:var(--text-muted);pointer-events:none;transform:translateY(-50%)}._sm_1nxaj_51{height:32px;font-size:var(--text-xs)}._md_1nxaj_55{height:40px;font-size:var(--text-sm)}._lg_1nxaj_59{height:48px;font-size:var(--text-sm)}._root_ctdye_1{display:inline-flex;gap:var(--space-2);align-items:center;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}._disabled_ctdye_12{cursor:not-allowed;opacity:.45}._input_ctdye_17{position:absolute;width:0;height:0;opacity:0}._track_ctdye_24{position:relative;flex-shrink:0;width:36px;height:20px;background:var(--adl-neutral-300);border-radius:var(--radius-full);transition:background var(--duration-base) var(--ease-out)}._on_ctdye_34{background:var(--brand-primary)}._knob_ctdye_38{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--adl-neutral-0);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:left var(--duration-base) var(--ease-out)}._on_ctdye_34 ._knob_ctdye_38{left:18px}._input_ctdye_17:focus-visible+._track_ctdye_24{box-shadow:var(--shadow-focus)}._box_1akfw_1{box-sizing:border-box}._pad0_1akfw_6{padding:var(--space-0)}._pad1_1akfw_9{padding:var(--space-1)}._pad2_1akfw_12{padding:var(--space-2)}._pad3_1akfw_15{padding:var(--space-3)}._pad4_1akfw_18{padding:var(--space-4)}._pad5_1akfw_21{padding:var(--space-5)}._pad6_1akfw_24{padding:var(--space-6)}._pad8_1akfw_27{padding:var(--space-8)}._pad10_1akfw_30{padding:var(--space-10)}._pad12_1akfw_33{padding:var(--space-12)}._pad16_1akfw_36{padding:var(--space-16)}._radiusNone_1akfw_41{border-radius:0}._radiusXs_1akfw_44{border-radius:var(--radius-xs)}._radiusSm_1akfw_47{border-radius:var(--radius-sm)}._radiusMd_1akfw_50{border-radius:var(--radius-md)}._radiusLg_1akfw_53{border-radius:var(--radius-lg)}._radiusXl_1akfw_56{border-radius:var(--radius-xl)}._radiusFull_1akfw_59{border-radius:var(--radius-full)}._surfaceDefault_1akfw_64{background:var(--surface-default)}._surfaceRaised_1akfw_67{background:var(--surface-raised)}._surfaceSunken_1akfw_70{background:var(--surface-sunken)}._border_1akfw_75{border:1px solid var(--border-default)}._container_opidm_1{box-sizing:border-box;width:100%;margin-inline:auto}._widthMax_opidm_8{max-width:var(--container-max)}._widthNarrow_opidm_11{max-width:var(--container-narrow)}._gutter0_opidm_16{padding-inline:var(--space-0)}._gutter1_opidm_19{padding-inline:var(--space-1)}._gutter2_opidm_22{padding-inline:var(--space-2)}._gutter3_opidm_25{padding-inline:var(--space-3)}._gutter4_opidm_28{padding-inline:var(--space-4)}._gutter5_opidm_31{padding-inline:var(--space-5)}._gutter6_opidm_34{padding-inline:var(--space-6)}._gutter8_opidm_37{padding-inline:var(--space-8)}._gutter10_opidm_40{padding-inline:var(--space-10)}._gutter12_opidm_43{padding-inline:var(--space-12)}._gutter16_opidm_46{padding-inline:var(--space-16)}._grid_ahbs8_1{display:grid}._cols1_ahbs8_6{grid-template-columns:repeat(1,minmax(0,1fr))}._cols2_ahbs8_9{grid-template-columns:repeat(2,minmax(0,1fr))}._cols3_ahbs8_12{grid-template-columns:repeat(3,minmax(0,1fr))}._cols4_ahbs8_15{grid-template-columns:repeat(4,minmax(0,1fr))}._cols6_ahbs8_18{grid-template-columns:repeat(6,minmax(0,1fr))}._cols12_ahbs8_21{grid-template-columns:repeat(12,minmax(0,1fr))}._gap0_ahbs8_26{gap:var(--space-0)}._gap1_ahbs8_29{gap:var(--space-1)}._gap2_ahbs8_32{gap:var(--space-2)}._gap3_ahbs8_35{gap:var(--space-3)}._gap4_ahbs8_38{gap:var(--space-4)}._gap5_ahbs8_41{gap:var(--space-5)}._gap6_ahbs8_44{gap:var(--space-6)}._gap8_ahbs8_47{gap:var(--space-8)}._gap10_ahbs8_50{gap:var(--space-10)}._gap12_ahbs8_53{gap:var(--space-12)}._gap16_ahbs8_56{gap:var(--space-16)}._inline_eh3ac_1{display:flex;flex-direction:row}._wrap_eh3ac_7{flex-wrap:wrap}._gap0_eh3ac_12{gap:var(--space-0)}._gap1_eh3ac_15{gap:var(--space-1)}._gap2_eh3ac_18{gap:var(--space-2)}._gap3_eh3ac_21{gap:var(--space-3)}._gap4_eh3ac_24{gap:var(--space-4)}._gap5_eh3ac_27{gap:var(--space-5)}._gap6_eh3ac_30{gap:var(--space-6)}._gap8_eh3ac_33{gap:var(--space-8)}._gap10_eh3ac_36{gap:var(--space-10)}._gap12_eh3ac_39{gap:var(--space-12)}._gap16_eh3ac_42{gap:var(--space-16)}._alignStart_eh3ac_47{align-items:flex-start}._alignCenter_eh3ac_50{align-items:center}._alignEnd_eh3ac_53{align-items:flex-end}._alignStretch_eh3ac_56{align-items:stretch}._justifyStart_eh3ac_61{justify-content:flex-start}._justifyCenter_eh3ac_64{justify-content:center}._justifyEnd_eh3ac_67{justify-content:flex-end}._justifyBetween_eh3ac_70{justify-content:space-between}._stack_e0a6n_1{display:flex;flex-direction:column}._gap0_e0a6n_7{gap:var(--space-0)}._gap1_e0a6n_10{gap:var(--space-1)}._gap2_e0a6n_13{gap:var(--space-2)}._gap3_e0a6n_16{gap:var(--space-3)}._gap4_e0a6n_19{gap:var(--space-4)}._gap5_e0a6n_22{gap:var(--space-5)}._gap6_e0a6n_25{gap:var(--space-6)}._gap8_e0a6n_28{gap:var(--space-8)}._gap10_e0a6n_31{gap:var(--space-10)}._gap12_e0a6n_34{gap:var(--space-12)}._gap16_e0a6n_37{gap:var(--space-16)}._alignStart_e0a6n_42{align-items:flex-start}._alignCenter_e0a6n_45{align-items:center}._alignEnd_e0a6n_48{align-items:flex-end}._alignStretch_e0a6n_51{align-items:stretch}._justifyStart_e0a6n_56{justify-content:flex-start}._justifyCenter_e0a6n_59{justify-content:center}._justifyEnd_e0a6n_62{justify-content:flex-end}._justifyBetween_e0a6n_65{justify-content:space-between}._list_1e7it_1{display:flex;gap:var(--space-1-5);align-items:center;padding:0;margin:0;font-family:var(--font-body);font-size:var(--text-sm);list-style:none}._item_1e7it_12{display:flex;gap:var(--space-1-5);align-items:center}._current_1e7it_18{font-weight:var(--weight-semibold);color:var(--text-primary)}._link_1e7it_23{color:var(--text-muted);text-decoration:none}._link_1e7it_23:hover{color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px}._sep_1e7it_34{color:var(--adl-neutral-400)}._tablist_1khzs_1{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle)}._tab_1khzs_1{display:inline-flex;gap:var(--space-1-5);align-items:center;margin-bottom:-1px;font-family:var(--font-body);font-weight:var(--weight-semibold);color:var(--text-muted);cursor:pointer;background:transparent;border:none;border-bottom:2px solid transparent;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}._tab_1khzs_1:hover:not(._active_1khzs_24){color:var(--text-secondary)}._active_1khzs_24{color:var(--text-primary);border-bottom-color:var(--brand-primary)}._sm_1khzs_34{padding:var(--space-2) var(--space-2-5);font-size:var(--text-xs)}._md_1khzs_38{padding:var(--space-2-5) 14px;font-size:var(--text-sm)}._count_1khzs_44{padding:2px 6px;font-size:11px;line-height:1;color:var(--text-muted);background:var(--bg-muted);border-radius:var(--radius-full)}._countActive_1khzs_53{color:var(--tint-brand-fg);background:var(--brand-primary-subtle)}._heading_xq294_1{margin:0;font-family:var(--font-display);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}._sizeXs_xq294_9{font-size:var(--text-xs)}._sizeSm_xq294_12{font-size:var(--text-sm)}._sizeMd_xq294_15{font-size:var(--text-md)}._sizeLg_xq294_18{font-size:var(--text-lg)}._sizeXl_xq294_21{font-size:var(--text-xl)}._size2xl_xq294_24{font-size:var(--text-2xl)}._size3xl_xq294_27{font-size:var(--text-3xl)}._size4xl_xq294_30{font-size:var(--text-4xl)}._weightRegular_xq294_35{font-weight:var(--weight-regular)}._weightMedium_xq294_38{font-weight:var(--weight-medium)}._weightSemibold_xq294_41{font-weight:var(--weight-semibold)}._weightBold_xq294_44{font-weight:var(--weight-bold)}._tonePrimary_xq294_49{color:var(--text-primary)}._toneSecondary_xq294_52{color:var(--text-secondary)}._toneMuted_xq294_55{color:var(--text-muted)}._toneInverse_xq294_58{color:var(--text-inverse)}._toneLink_xq294_61{color:var(--text-link)}._text_xjn05_1{margin:0}._sizeXs_xjn05_6{font-size:var(--text-xs)}._sizeSm_xjn05_9{font-size:var(--text-sm)}._sizeMd_xjn05_12{font-size:var(--text-md)}._sizeLg_xjn05_15{font-size:var(--text-lg)}._sizeXl_xjn05_18{font-size:var(--text-xl)}._size2xl_xjn05_21{font-size:var(--text-2xl)}._weightRegular_xjn05_26{font-weight:var(--weight-regular)}._weightMedium_xjn05_29{font-weight:var(--weight-medium)}._weightSemibold_xjn05_32{font-weight:var(--weight-semibold)}._weightBold_xjn05_35{font-weight:var(--weight-bold)}._tonePrimary_xjn05_40{color:var(--text-primary)}._toneSecondary_xjn05_43{color:var(--text-secondary)}._toneMuted_xjn05_46{color:var(--text-muted)}._toneInverse_xjn05_49{color:var(--text-inverse)}._toneLink_xjn05_52{color:var(--text-link)}._fontBody_xjn05_57{font-family:var(--font-body)}._fontDisplay_xjn05_60{font-family:var(--font-display)}._fontMono_xjn05_63{font-family:var(--font-mono)}._leadingTight_xjn05_68{line-height:var(--leading-tight)}._leadingSnug_xjn05_71{line-height:var(--leading-snug)}._leadingNormal_xjn05_74{line-height:var(--leading-normal)}._leadingRelaxed_xjn05_77{line-height:var(--leading-relaxed)}._alignStart_xjn05_82{text-align:start}._alignCenter_xjn05_85{text-align:center}._alignEnd_xjn05_88{text-align:end}
package/dist/index.d.ts CHANGED
@@ -20,5 +20,13 @@ export { Field, type FieldProps } from "./components/forms/Field";
20
20
  export { Input, type InputProps } from "./components/forms/Input";
21
21
  export { Select, type SelectProps } from "./components/forms/Select";
22
22
  export { Switch, type SwitchProps } from "./components/forms/Switch";
23
+ export { Box, type BoxProps } from "./components/layout/Box";
24
+ export { Container, type ContainerProps, } from "./components/layout/Container";
25
+ export { Grid, type GridProps } from "./components/layout/Grid";
26
+ export { Inline, type InlineProps } from "./components/layout/Inline";
27
+ export { Stack, type StackProps } from "./components/layout/Stack";
23
28
  export { Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, } from "./components/navigation/Breadcrumb";
24
29
  export { type TabItem, Tabs, type TabsProps, } from "./components/navigation/Tabs";
30
+ export { type ResolvedTheme, type Theme, type ThemeContextValue, ThemeProvider, type ThemeProviderProps, useTheme, } from "./components/system/ThemeProvider";
31
+ export { Heading, type HeadingProps } from "./components/typography/Heading";
32
+ export { Text, type TextProps } from "./components/typography/Text";