@alpic-ai/ui 1.170.0 → 1.172.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 (52) hide show
  1. package/dist/components/area-chart.d.mts +3 -3
  2. package/dist/components/avatar.d.mts +1 -1
  3. package/dist/components/badge.d.mts +1 -1
  4. package/dist/components/bar-chart.d.mts +2 -2
  5. package/dist/components/bar-chart.mjs +1 -1
  6. package/dist/components/bar-list.d.mts +2 -2
  7. package/dist/components/button.d.mts +1 -1
  8. package/dist/components/chart-card.d.mts +2 -2
  9. package/dist/components/chart-legend.d.mts +3 -3
  10. package/dist/components/chart-primitives.d.mts +9 -10
  11. package/dist/components/chart-tooltip.d.mts +3 -3
  12. package/dist/components/donut-chart.d.mts +2 -2
  13. package/dist/components/editable.d.mts +101 -0
  14. package/dist/components/editable.mjs +509 -0
  15. package/dist/components/form.d.mts +10 -8
  16. package/dist/components/form.mjs +18 -8
  17. package/dist/components/heatmap-chart.d.mts +2 -2
  18. package/dist/components/input.d.mts +3 -1
  19. package/dist/components/input.mjs +5 -3
  20. package/dist/components/line-chart.d.mts +2 -2
  21. package/dist/components/select-trigger-variants.d.mts +2 -3
  22. package/dist/components/shimmer-text.d.mts +2 -3
  23. package/dist/components/skeleton.d.mts +1 -1
  24. package/dist/components/spinner.d.mts +2 -2
  25. package/dist/components/stat.d.mts +3 -3
  26. package/dist/components/typography.d.mts +5 -6
  27. package/dist/components/visually-hidden-input.d.mts +12 -0
  28. package/dist/components/visually-hidden-input.mjs +109 -0
  29. package/dist/hooks/use-as-ref.d.mts +5 -0
  30. package/dist/hooks/use-as-ref.mjs +12 -0
  31. package/dist/hooks/use-chart-theme.d.mts +3 -4
  32. package/dist/hooks/use-copy-to-clipboard.d.mts +2 -3
  33. package/dist/hooks/use-isomorphic-layout-effect.d.mts +5 -0
  34. package/dist/hooks/use-isomorphic-layout-effect.mjs +5 -0
  35. package/dist/hooks/use-lazy-ref.d.mts +6 -0
  36. package/dist/hooks/use-lazy-ref.mjs +9 -0
  37. package/dist/hooks/use-mobile.d.mts +2 -3
  38. package/dist/lib/chart-palette.d.mts +13 -14
  39. package/dist/lib/chart.d.mts +3 -4
  40. package/dist/lib/cn.d.mts +2 -3
  41. package/dist/lib/compose-refs.mjs +23 -0
  42. package/package.json +9 -13
  43. package/src/components/bar-chart.tsx +1 -1
  44. package/src/components/editable.tsx +871 -0
  45. package/src/components/form.tsx +16 -6
  46. package/src/components/input.tsx +8 -0
  47. package/src/components/visually-hidden-input.tsx +148 -0
  48. package/src/hooks/use-as-ref.ts +15 -0
  49. package/src/hooks/use-isomorphic-layout-effect.ts +5 -0
  50. package/src/hooks/use-lazy-ref.ts +13 -0
  51. package/src/lib/compose-refs.ts +38 -0
  52. package/src/stories/input.stories.tsx +3 -0
@@ -7,13 +7,13 @@ declare const CURVE_TYPE: {
7
7
  readonly linear: "linear";
8
8
  readonly step: "stepAfter";
9
9
  };
10
- interface ChartMarker {
10
+ export interface ChartMarker {
11
11
  x: string | number;
12
12
  y: number;
13
13
  label?: string;
14
14
  color?: string;
15
15
  }
16
- interface AreaChartProps {
16
+ export interface AreaChartProps {
17
17
  data: ReadonlyArray<Record<string, string | number | null | undefined>>;
18
18
  index: string;
19
19
  series: ChartSeries[];
@@ -40,4 +40,4 @@ interface AreaChartProps {
40
40
  }
41
41
  declare function AreaChart({ data, index, series, variant, curve, legend, legendAlign, valueFlags, height, yAxisWidth, palette, referenceLine, markers, lastValueLabel, texture, loading, valueFormatter, labelFormatter, className }: AreaChartProps): React$1.JSX.Element;
42
42
  //#endregion
43
- export { AreaChart, AreaChartProps, ChartMarker };
43
+ export { AreaChart };
@@ -3,7 +3,7 @@ import * as React$1 from "react";
3
3
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
4
4
  //#region src/components/avatar.d.ts
5
5
  declare const avatarVariants: (props?: ({
6
- size?: "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
6
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  type AvatarSize = NonNullable<VariantProps<typeof avatarVariants>["size"]>;
9
9
  type AvatarStatus = "online";
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from "class-variance-authority";
2
2
  //#region src/components/badge.d.ts
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "warning" | "success" | "secondary" | "primary" | "error" | null | undefined;
4
+ variant?: "warning" | "success" | "primary" | "secondary" | "error" | null | undefined;
5
5
  size?: "sm" | "md" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  interface BadgeProps extends React.ComponentProps<"span">, VariantProps<typeof badgeVariants> {}
@@ -3,7 +3,7 @@ import { ChartPaletteName } from "../lib/chart-palette.mjs";
3
3
  import { ChartMarker } from "./area-chart.mjs";
4
4
  import * as React$1 from "react";
5
5
  //#region src/components/bar-chart.d.ts
6
- interface BarChartProps {
6
+ export interface BarChartProps {
7
7
  data: ReadonlyArray<Record<string, string | number | null | undefined>>;
8
8
  index: string;
9
9
  series: ChartSeries[];
@@ -31,4 +31,4 @@ interface BarChartProps {
31
31
  }
32
32
  declare function BarChart({ data, index, series, variant, legend, legendAlign, valueLabels, height, yAxisWidth, bare, barCategoryGap, palette, referenceLine, markers, texture, partialLastBar, loading, valueFormatter, labelFormatter, className }: BarChartProps): React$1.JSX.Element;
33
33
  //#endregion
34
- export { BarChart, BarChartProps };
34
+ export { BarChart };
@@ -89,7 +89,7 @@ function BarChart({ data, index, series, variant = "stacked", legend = false, le
89
89
  "data-slot": "bar-chart",
90
90
  className: cn("flex w-full flex-col gap-3", "[&_.recharts-surface]:outline-none [&_.recharts-wrapper]:outline-none", className),
91
91
  children: [/* @__PURE__ */ jsx("div", {
92
- className: "w-full",
92
+ className: cn("w-full", bare && !loading && !isEmpty && "border-border border-b"),
93
93
  style: { height },
94
94
  children: loading ? /* @__PURE__ */ jsx(Skeleton, { className: "h-full w-full rounded-lg" }) : isEmpty ? /* @__PURE__ */ jsx("div", {
95
95
  className: "flex h-full items-center justify-center rounded-lg border border-border border-dashed font-mono text-quaternary-foreground text-text-xs",
@@ -1,7 +1,7 @@
1
1
  import { ChartPaletteName } from "../lib/chart-palette.mjs";
2
2
  import * as React$1 from "react";
3
3
  //#region src/components/bar-list.d.ts
4
- interface BarListProps {
4
+ export interface BarListProps {
5
5
  data: ReadonlyArray<Record<string, string | number | null | undefined>>;
6
6
  index: string;
7
7
  dataKey?: string;
@@ -19,4 +19,4 @@ interface BarListProps {
19
19
  }
20
20
  declare function BarList({ data, index, dataKey, secondaryKey, secondaryVariantKey, titleKey, maxItems, palette, semantic, loading, valueFormatter, labelFormatter, className }: BarListProps): React$1.JSX.Element;
21
21
  //#endregion
22
- export { BarList, BarListProps };
22
+ export { BarList };
@@ -2,7 +2,7 @@ import { VariantProps } from "class-variance-authority";
2
2
  import * as React$1 from "react";
3
3
  //#region src/components/button.d.ts
4
4
  declare const buttonVariants: (props?: ({
5
- variant?: "destructive" | "secondary" | "primary" | "tertiary" | "link" | "link-muted" | "cta" | null | undefined;
5
+ variant?: "destructive" | "primary" | "secondary" | "tertiary" | "link" | "link-muted" | "cta" | null | undefined;
6
6
  size?: "default" | "icon" | "icon-rounded" | "pill" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  interface ButtonProps extends React$1.ComponentProps<"button">, VariantProps<typeof buttonVariants> {
@@ -1,7 +1,7 @@
1
1
  import { ChartPaletteName } from "../lib/chart-palette.mjs";
2
2
  import * as React$1 from "react";
3
3
  //#region src/components/chart-card.d.ts
4
- interface ChartCardProps extends Omit<React$1.ComponentProps<"section">, "title"> {
4
+ export interface ChartCardProps extends Omit<React$1.ComponentProps<"section">, "title"> {
5
5
  palette?: ChartPaletteName;
6
6
  kicker?: React$1.ReactNode;
7
7
  title?: React$1.ReactNode;
@@ -11,4 +11,4 @@ interface ChartCardProps extends Omit<React$1.ComponentProps<"section">, "title"
11
11
  }
12
12
  declare function ChartCard({ palette, kicker, title, description, action, accent, className, children, ...props }: ChartCardProps): React$1.JSX.Element;
13
13
  //#endregion
14
- export { ChartCard, ChartCardProps };
14
+ export { ChartCard };
@@ -1,11 +1,11 @@
1
1
  //#region src/components/chart-legend.d.ts
2
- interface ChartLegendItem {
2
+ export interface ChartLegendItem {
3
3
  key: string;
4
4
  name: string;
5
5
  color: string;
6
6
  dashed?: boolean;
7
7
  }
8
- interface ChartLegendProps extends React.HTMLAttributes<HTMLDivElement> {
8
+ export interface ChartLegendProps extends React.HTMLAttributes<HTMLDivElement> {
9
9
  items: ChartLegendItem[];
10
10
  align?: "left" | "center" | "right";
11
11
  insetLeft?: number;
@@ -14,4 +14,4 @@ interface ChartLegendProps extends React.HTMLAttributes<HTMLDivElement> {
14
14
  }
15
15
  declare function ChartLegend({ items, align, insetLeft, hiddenKeys, onItemClick, className, style, ...props }: ChartLegendProps): import("react").JSX.Element;
16
16
  //#endregion
17
- export { ChartLegend, ChartLegendItem, ChartLegendProps };
17
+ export { ChartLegend };
@@ -2,13 +2,13 @@ import { ChartTheme } from "../hooks/use-chart-theme.mjs";
2
2
  import { ChartSeries, ResolvedSeries } from "../lib/chart.mjs";
3
3
  import { ChartMarker } from "./area-chart.mjs";
4
4
  //#region src/components/chart-primitives.d.ts
5
- type ReferenceLineConfig = {
5
+ export type ReferenceLineConfig = {
6
6
  y: number;
7
7
  label?: string;
8
8
  band?: boolean;
9
9
  };
10
10
  type ChartData = ReadonlyArray<Record<string, string | number | null | undefined>>;
11
- declare function makeChartAxis(theme: ChartTheme): {
11
+ export declare function makeChartAxis(theme: ChartTheme): {
12
12
  stroke: string;
13
13
  tick: {
14
14
  fill: string;
@@ -21,15 +21,15 @@ declare function makeChartAxis(theme: ChartTheme): {
21
21
  strokeOpacity: number;
22
22
  };
23
23
  };
24
- declare function makeLegendItems(resolved: ResolvedSeries[]): {
24
+ export declare function makeLegendItems(resolved: ResolvedSeries[]): {
25
25
  key: string;
26
26
  name: string;
27
27
  color: string;
28
28
  dashed: boolean | undefined;
29
29
  }[];
30
30
  /** Stacked series must reach the stack height (sum per x-point), or reference bands and explicit Y domains clip a tall stack short. */
31
- declare function computeNumericMax(data: ChartData, series: ChartSeries[], stacked: boolean): number;
32
- declare function makeActiveDot(entry: ResolvedSeries, { valueFlags, theme, valueFormatter }: {
31
+ export declare function computeNumericMax(data: ChartData, series: ChartSeries[], stacked: boolean): number;
32
+ export declare function makeActiveDot(entry: ResolvedSeries, { valueFlags, theme, valueFormatter }: {
33
33
  valueFlags: boolean;
34
34
  theme: ChartTheme;
35
35
  valueFormatter: (value: number) => string;
@@ -43,7 +43,7 @@ declare function makeActiveDot(entry: ResolvedSeries, { valueFlags, theme, value
43
43
  stroke: string;
44
44
  strokeWidth: number;
45
45
  };
46
- declare function makeLastValueLabel(color: string, { dataLength, theme, valueFormatter }: {
46
+ export declare function makeLastValueLabel(color: string, { dataLength, theme, valueFormatter }: {
47
47
  dataLength: number;
48
48
  theme: ChartTheme;
49
49
  valueFormatter: (value: number) => string;
@@ -54,11 +54,10 @@ declare function makeLastValueLabel(color: string, { dataLength, theme, valueFor
54
54
  index?: number;
55
55
  }) => import("react").JSX.Element | null;
56
56
  /** Returns recharts elements (not a wrapper component) so recharts still detects them as direct chart children. */
57
- declare function renderReferenceLine({ referenceLine, numericMax, theme }: {
57
+ export declare function renderReferenceLine({ referenceLine, numericMax, theme }: {
58
58
  referenceLine: ReferenceLineConfig | undefined;
59
59
  numericMax: number;
60
60
  theme: ChartTheme;
61
61
  }): (import("react").JSX.Element | null)[] | null;
62
- declare function renderMarkers(markers: ChartMarker[] | undefined, theme: ChartTheme): import("react").JSX.Element[] | undefined;
63
- //#endregion
64
- export { ReferenceLineConfig, computeNumericMax, makeActiveDot, makeChartAxis, makeLastValueLabel, makeLegendItems, renderMarkers, renderReferenceLine };
62
+ export declare function renderMarkers(markers: ChartMarker[] | undefined, theme: ChartTheme): import("react").JSX.Element[] | undefined;
63
+ //#endregion
@@ -1,5 +1,5 @@
1
1
  //#region src/components/chart-tooltip.d.ts
2
- interface ChartTooltipItem {
2
+ export interface ChartTooltipItem {
3
3
  name?: string | number;
4
4
  value?: number | string;
5
5
  color?: string;
@@ -7,7 +7,7 @@ interface ChartTooltipItem {
7
7
  fill?: string;
8
8
  dataKey?: string | number;
9
9
  }
10
- interface ChartTooltipContentProps {
10
+ export interface ChartTooltipContentProps {
11
11
  active?: boolean;
12
12
  payload?: ChartTooltipItem[];
13
13
  label?: string | number;
@@ -20,4 +20,4 @@ interface ChartTooltipContentProps {
20
20
  }
21
21
  declare function ChartTooltipContent({ active, payload, label, valueFormatter, labelFormatter, hideLabel, showTotal, totalLabel, className }: ChartTooltipContentProps): import("react").JSX.Element | null;
22
22
  //#endregion
23
- export { ChartTooltipContent, ChartTooltipContentProps, ChartTooltipItem };
23
+ export { ChartTooltipContent };
@@ -11,7 +11,7 @@ declare const GEOMETRY: {
11
11
  readonly outer: "92%";
12
12
  };
13
13
  };
14
- interface DonutChartProps {
14
+ export interface DonutChartProps {
15
15
  data: ReadonlyArray<Record<string, string | number | null | undefined>>;
16
16
  index: string;
17
17
  dataKey?: string;
@@ -28,4 +28,4 @@ interface DonutChartProps {
28
28
  }
29
29
  declare function DonutChart({ data, index, dataKey, variant, legend, paddingAngle, height, palette, centerLabel, loading, valueFormatter, labelFormatter, className }: DonutChartProps): React$1.JSX.Element;
30
30
  //#endregion
31
- export { DonutChart, DonutChartProps };
31
+ export { DonutChart };
@@ -0,0 +1,101 @@
1
+ import * as React$1 from "react";
2
+ //#region src/components/editable.d.ts
3
+ type Direction = "ltr" | "rtl";
4
+ interface DivProps extends React$1.ComponentProps<"div"> {
5
+ asChild?: boolean;
6
+ }
7
+ interface StoreState {
8
+ value: string;
9
+ editing: boolean;
10
+ }
11
+ interface Store {
12
+ subscribe: (callback: () => void) => () => void;
13
+ getState: () => StoreState;
14
+ setState: <K extends keyof StoreState>(key: K, value: StoreState[K]) => void;
15
+ notify: () => void;
16
+ }
17
+ declare function useStore<T>(selector: (state: StoreState) => T, ogStore?: Store | null): T;
18
+ interface EditableContextValue {
19
+ rootId: string;
20
+ inputId: string;
21
+ labelId: string;
22
+ defaultValue: string;
23
+ onCancel: () => void;
24
+ onEdit: () => void;
25
+ onSubmit: (value: string) => void;
26
+ onEnterKeyDown?: (event: KeyboardEvent) => void;
27
+ onEscapeKeyDown?: (event: KeyboardEvent) => void;
28
+ dir?: Direction;
29
+ maxLength?: number;
30
+ placeholder?: string;
31
+ triggerMode: "click" | "dblclick" | "focus";
32
+ autosize: boolean;
33
+ multiline: boolean;
34
+ disabled?: boolean;
35
+ readOnly?: boolean;
36
+ required?: boolean;
37
+ invalid?: boolean;
38
+ }
39
+ interface EditableProps extends Omit<DivProps, "onSubmit"> {
40
+ id?: string;
41
+ defaultValue?: string;
42
+ value?: string;
43
+ onValueChange?: (value: string) => void;
44
+ defaultEditing?: boolean;
45
+ editing?: boolean;
46
+ onEditingChange?: (editing: boolean) => void;
47
+ onCancel?: () => void;
48
+ onEdit?: () => void;
49
+ onSubmit?: (value: string) => void;
50
+ onEscapeKeyDown?: (event: KeyboardEvent) => void;
51
+ onEnterKeyDown?: (event: KeyboardEvent) => void;
52
+ dir?: Direction;
53
+ maxLength?: number;
54
+ name?: string;
55
+ placeholder?: string;
56
+ triggerMode?: EditableContextValue["triggerMode"];
57
+ autosize?: boolean;
58
+ multiline?: boolean;
59
+ disabled?: boolean;
60
+ readOnly?: boolean;
61
+ required?: boolean;
62
+ invalid?: boolean;
63
+ }
64
+ declare function Editable(props: EditableProps): React$1.JSX.Element;
65
+ interface EditableLabelProps extends React$1.ComponentProps<"label"> {
66
+ asChild?: boolean;
67
+ }
68
+ declare function EditableLabel(props: EditableLabelProps): React$1.JSX.Element;
69
+ interface EditableAreaProps extends React$1.ComponentProps<"div"> {
70
+ asChild?: boolean;
71
+ }
72
+ declare function EditableArea(props: EditableAreaProps): React$1.JSX.Element;
73
+ interface EditablePreviewProps extends React$1.ComponentProps<"div"> {
74
+ asChild?: boolean;
75
+ }
76
+ declare function EditablePreview(props: EditablePreviewProps): React$1.JSX.Element | null;
77
+ interface EditableInputProps extends React$1.ComponentProps<"input"> {
78
+ asChild?: boolean;
79
+ maxLength?: number;
80
+ }
81
+ declare function EditableInput(props: EditableInputProps): React$1.JSX.Element | null;
82
+ interface EditableTriggerProps extends React$1.ComponentProps<"button"> {
83
+ asChild?: boolean;
84
+ forceMount?: boolean;
85
+ }
86
+ declare function EditableTrigger(props: EditableTriggerProps): React$1.JSX.Element | null;
87
+ interface EditableToolbarProps extends React$1.ComponentProps<"div"> {
88
+ asChild?: boolean;
89
+ orientation?: "horizontal" | "vertical";
90
+ }
91
+ declare function EditableToolbar(props: EditableToolbarProps): React$1.JSX.Element;
92
+ interface EditableCancelProps extends React$1.ComponentProps<"button"> {
93
+ asChild?: boolean;
94
+ }
95
+ declare function EditableCancel(props: EditableCancelProps): React$1.JSX.Element | null;
96
+ interface EditableSubmitProps extends React$1.ComponentProps<"button"> {
97
+ asChild?: boolean;
98
+ }
99
+ declare function EditableSubmit(props: EditableSubmitProps): React$1.JSX.Element | null;
100
+ //#endregion
101
+ export { Editable, EditableArea, EditableCancel, EditableInput, EditableLabel, EditablePreview, type EditableProps, EditableSubmit, EditableToolbar, EditableTrigger, useStore as useEditable };