@optimum-intelligence/opti-ui 0.0.0-stage → 0.2.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.
- package/LICENSE +23 -0
- package/README.md +161 -2
- package/dist/components/accordion/Accordion.d.ts +17 -0
- package/dist/components/accordion/Accordion.js +204 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/alert/Alert.d.ts +18 -0
- package/dist/components/alert/Alert.js +164 -0
- package/dist/components/alert/Alert.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +97 -0
- package/dist/components/app-shell/AppShell.js +689 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +21 -0
- package/dist/components/avatar/Avatar.js +190 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +16 -0
- package/dist/components/badge/Badge.js +94 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/button/Button.d.ts +23 -0
- package/dist/components/button/Button.js +159 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/calendar/Calendar.d.ts +59 -0
- package/dist/components/calendar/Calendar.js +709 -0
- package/dist/components/calendar/Calendar.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +32 -0
- package/dist/components/calendar/date-utils.js +112 -0
- package/dist/components/calendar/date-utils.js.map +1 -0
- package/dist/components/card/Card.d.ts +42 -0
- package/dist/components/card/Card.js +82 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/choice/Choice.d.ts +32 -0
- package/dist/components/choice/Choice.js +371 -0
- package/dist/components/choice/Choice.js.map +1 -0
- package/dist/components/collapsible/Collapsible.d.ts +15 -0
- package/dist/components/collapsible/Collapsible.js +155 -0
- package/dist/components/collapsible/Collapsible.js.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +68 -0
- package/dist/components/combobox/Combobox.js +752 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/command-palette/CommandPalette.d.ts +52 -0
- package/dist/components/command-palette/CommandPalette.js +328 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -0
- package/dist/components/data-table/DataTable.d.ts +111 -0
- package/dist/components/data-table/DataTable.js +444 -0
- package/dist/components/data-table/DataTable.js.map +1 -0
- package/dist/components/date-picker/DatePicker.d.ts +50 -0
- package/dist/components/date-picker/DatePicker.js +485 -0
- package/dist/components/date-picker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
- package/dist/components/date-picker/DateRangePicker.js +339 -0
- package/dist/components/date-picker/DateRangePicker.js.map +1 -0
- package/dist/components/date-picker/PickerField.d.ts +38 -0
- package/dist/components/date-picker/PickerField.js +238 -0
- package/dist/components/date-picker/PickerField.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +70 -0
- package/dist/components/dialog/Dialog.js +354 -0
- package/dist/components/dialog/Dialog.js.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +39 -0
- package/dist/components/drawer/Drawer.js +225 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/empty-state/EmptyState.d.ts +12 -0
- package/dist/components/empty-state/EmptyState.js +116 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/field/Field.d.ts +36 -0
- package/dist/components/field/Field.js +337 -0
- package/dist/components/field/Field.js.map +1 -0
- package/dist/components/file-upload/FileUpload.d.ts +91 -0
- package/dist/components/file-upload/FileUpload.js +714 -0
- package/dist/components/file-upload/FileUpload.js.map +1 -0
- package/dist/components/input/Input.d.ts +49 -0
- package/dist/components/input/Input.js +538 -0
- package/dist/components/input/Input.js.map +1 -0
- package/dist/components/link/Link.d.ts +17 -0
- package/dist/components/link/Link.js +91 -0
- package/dist/components/link/Link.js.map +1 -0
- package/dist/components/menu/Menu.d.ts +79 -0
- package/dist/components/menu/Menu.js +615 -0
- package/dist/components/menu/Menu.js.map +1 -0
- package/dist/components/number-field/NumberField.d.ts +16 -0
- package/dist/components/number-field/NumberField.js +188 -0
- package/dist/components/number-field/NumberField.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +34 -0
- package/dist/components/pagination/Pagination.js +244 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +22 -0
- package/dist/components/popover/Popover.js +186 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/preview-card/PreviewCard.d.ts +20 -0
- package/dist/components/preview-card/PreviewCard.js +114 -0
- package/dist/components/preview-card/PreviewCard.js.map +1 -0
- package/dist/components/progress/Progress.d.ts +20 -0
- package/dist/components/progress/Progress.js +169 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
- package/dist/components/scroll-area/ScrollArea.js +112 -0
- package/dist/components/scroll-area/ScrollArea.js.map +1 -0
- package/dist/components/search-input/SearchInput.d.ts +14 -0
- package/dist/components/search-input/SearchInput.js +114 -0
- package/dist/components/search-input/SearchInput.js.map +1 -0
- package/dist/components/select/Select.d.ts +66 -0
- package/dist/components/select/Select.js +601 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/separator/Separator.d.ts +4 -0
- package/dist/components/separator/Separator.js +46 -0
- package/dist/components/separator/Separator.js.map +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +16 -0
- package/dist/components/skeleton/Skeleton.js +135 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +11 -0
- package/dist/components/slider/Slider.js +107 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +9 -0
- package/dist/components/spinner/Spinner.js +78 -0
- package/dist/components/spinner/Spinner.js.map +1 -0
- package/dist/components/stack/Stack.d.ts +23 -0
- package/dist/components/stack/Stack.js +79 -0
- package/dist/components/stack/Stack.js.map +1 -0
- package/dist/components/stat-card/StatCard.d.ts +22 -0
- package/dist/components/stat-card/StatCard.js +153 -0
- package/dist/components/stat-card/StatCard.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +30 -0
- package/dist/components/stepper/Stepper.js +131 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/table/Table.d.ts +53 -0
- package/dist/components/table/Table.js +221 -0
- package/dist/components/table/Table.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +19 -0
- package/dist/components/tabs/Tabs.js +183 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tag/Tag.d.ts +22 -0
- package/dist/components/tag/Tag.js +121 -0
- package/dist/components/tag/Tag.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +34 -0
- package/dist/components/toast/Toast.js +187 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toggle/Toggle.d.ts +31 -0
- package/dist/components/toggle/Toggle.js +197 -0
- package/dist/components/toggle/Toggle.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +21 -0
- package/dist/components/toolbar/Toolbar.js +239 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +33 -0
- package/dist/components/tooltip/Tooltip.js +182 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/typography/Typography.d.ts +32 -0
- package/dist/components/typography/Typography.js +183 -0
- package/dist/components/typography/Typography.js.map +1 -0
- package/dist/fonts.css +3 -0
- package/dist/icons/index.d.ts +125 -0
- package/dist/icons/index.js +174 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.js +56 -0
- package/dist/opti-ui.css +5365 -0
- package/dist/theme/ThemeProvider.d.ts +22 -0
- package/dist/theme/ThemeProvider.js +115 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/utils/cx.d.ts +10 -0
- package/dist/utils/cx.js +18 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/portal.d.ts +8 -0
- package/dist/utils/portal.js +16 -0
- package/dist/utils/portal.js.map +1 -0
- package/dist/utils/primitive.d.ts +13 -0
- package/dist/utils/primitive.js +61 -0
- package/dist/utils/primitive.js.map +1 -0
- package/dist/utils/search.d.ts +4 -0
- package/dist/utils/search.js +15 -0
- package/dist/utils/search.js.map +1 -0
- package/package.json +71 -4
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface SkeletonProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
ref?: React.Ref<HTMLSpanElement>;
|
|
4
|
+
width?: number | string;
|
|
5
|
+
height?: number | string;
|
|
6
|
+
/** Render as a circle (uses `width` for both dimensions). */
|
|
7
|
+
circle?: boolean;
|
|
8
|
+
radius?: number | string;
|
|
9
|
+
}
|
|
10
|
+
/** Pulsing placeholder for content that is still loading. */
|
|
11
|
+
export declare function Skeleton({ width, height, circle, radius, className, style, ref, ...props }: SkeletonProps): React.JSX.Element;
|
|
12
|
+
export interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
14
|
+
lines?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function SkeletonText({ lines, className, ref, ...props }: SkeletonTextProps): React.JSX.Element;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx } from "../../utils/cx.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/skeleton/Skeleton.tsx
|
|
7
|
+
/** Pulsing placeholder for content that is still loading. */
|
|
8
|
+
function Skeleton(t0) {
|
|
9
|
+
const $ = c(22);
|
|
10
|
+
let circle;
|
|
11
|
+
let className;
|
|
12
|
+
let height;
|
|
13
|
+
let props;
|
|
14
|
+
let radius;
|
|
15
|
+
let ref;
|
|
16
|
+
let style;
|
|
17
|
+
let width;
|
|
18
|
+
if ($[0] !== t0) {
|
|
19
|
+
({width, height, circle, radius, className, style, ref, ...props} = t0);
|
|
20
|
+
$[0] = t0;
|
|
21
|
+
$[1] = circle;
|
|
22
|
+
$[2] = className;
|
|
23
|
+
$[3] = height;
|
|
24
|
+
$[4] = props;
|
|
25
|
+
$[5] = radius;
|
|
26
|
+
$[6] = ref;
|
|
27
|
+
$[7] = style;
|
|
28
|
+
$[8] = width;
|
|
29
|
+
} else {
|
|
30
|
+
circle = $[1];
|
|
31
|
+
className = $[2];
|
|
32
|
+
height = $[3];
|
|
33
|
+
props = $[4];
|
|
34
|
+
radius = $[5];
|
|
35
|
+
ref = $[6];
|
|
36
|
+
style = $[7];
|
|
37
|
+
width = $[8];
|
|
38
|
+
}
|
|
39
|
+
let t1;
|
|
40
|
+
if ($[9] !== className) {
|
|
41
|
+
t1 = cx("oui-skeleton", className);
|
|
42
|
+
$[9] = className;
|
|
43
|
+
$[10] = t1;
|
|
44
|
+
} else t1 = $[10];
|
|
45
|
+
const t2 = circle || void 0;
|
|
46
|
+
const t3 = circle ? width : height;
|
|
47
|
+
let t4;
|
|
48
|
+
if ($[11] !== radius || $[12] !== style || $[13] !== t3 || $[14] !== width) {
|
|
49
|
+
t4 = {
|
|
50
|
+
width,
|
|
51
|
+
height: t3,
|
|
52
|
+
borderRadius: radius,
|
|
53
|
+
...style
|
|
54
|
+
};
|
|
55
|
+
$[11] = radius;
|
|
56
|
+
$[12] = style;
|
|
57
|
+
$[13] = t3;
|
|
58
|
+
$[14] = width;
|
|
59
|
+
$[15] = t4;
|
|
60
|
+
} else t4 = $[15];
|
|
61
|
+
let t5;
|
|
62
|
+
if ($[16] !== props || $[17] !== ref || $[18] !== t1 || $[19] !== t2 || $[20] !== t4) {
|
|
63
|
+
t5 = /* @__PURE__ */ jsx("span", {
|
|
64
|
+
ref,
|
|
65
|
+
"aria-hidden": true,
|
|
66
|
+
className: t1,
|
|
67
|
+
"data-circle": t2,
|
|
68
|
+
style: t4,
|
|
69
|
+
...props
|
|
70
|
+
});
|
|
71
|
+
$[16] = props;
|
|
72
|
+
$[17] = ref;
|
|
73
|
+
$[18] = t1;
|
|
74
|
+
$[19] = t2;
|
|
75
|
+
$[20] = t4;
|
|
76
|
+
$[21] = t5;
|
|
77
|
+
} else t5 = $[21];
|
|
78
|
+
return t5;
|
|
79
|
+
}
|
|
80
|
+
function SkeletonText(t0) {
|
|
81
|
+
const $ = c(14);
|
|
82
|
+
let className;
|
|
83
|
+
let props;
|
|
84
|
+
let ref;
|
|
85
|
+
let t1;
|
|
86
|
+
if ($[0] !== t0) {
|
|
87
|
+
({lines: t1, className, ref, ...props} = t0);
|
|
88
|
+
$[0] = t0;
|
|
89
|
+
$[1] = className;
|
|
90
|
+
$[2] = props;
|
|
91
|
+
$[3] = ref;
|
|
92
|
+
$[4] = t1;
|
|
93
|
+
} else {
|
|
94
|
+
className = $[1];
|
|
95
|
+
props = $[2];
|
|
96
|
+
ref = $[3];
|
|
97
|
+
t1 = $[4];
|
|
98
|
+
}
|
|
99
|
+
const lines = t1 === void 0 ? 3 : t1;
|
|
100
|
+
let t2;
|
|
101
|
+
if ($[5] !== className) {
|
|
102
|
+
t2 = cx("oui-skeleton-text", className);
|
|
103
|
+
$[5] = className;
|
|
104
|
+
$[6] = t2;
|
|
105
|
+
} else t2 = $[6];
|
|
106
|
+
let t3;
|
|
107
|
+
if ($[7] !== lines) {
|
|
108
|
+
t3 = Array.from({ length: lines }, (_, i) => /* @__PURE__ */ jsx(Skeleton, {
|
|
109
|
+
height: "0.8rem",
|
|
110
|
+
width: i === lines - 1 && lines > 1 ? "60%" : "100%"
|
|
111
|
+
}, i));
|
|
112
|
+
$[7] = lines;
|
|
113
|
+
$[8] = t3;
|
|
114
|
+
} else t3 = $[8];
|
|
115
|
+
let t4;
|
|
116
|
+
if ($[9] !== props || $[10] !== ref || $[11] !== t2 || $[12] !== t3) {
|
|
117
|
+
t4 = /* @__PURE__ */ jsx("div", {
|
|
118
|
+
ref,
|
|
119
|
+
"aria-hidden": true,
|
|
120
|
+
className: t2,
|
|
121
|
+
...props,
|
|
122
|
+
children: t3
|
|
123
|
+
});
|
|
124
|
+
$[9] = props;
|
|
125
|
+
$[10] = ref;
|
|
126
|
+
$[11] = t2;
|
|
127
|
+
$[12] = t3;
|
|
128
|
+
$[13] = t4;
|
|
129
|
+
} else t4 = $[13];
|
|
130
|
+
return t4;
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
export { Skeleton, SkeletonText };
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.js","names":["React","cx","SkeletonProps","HTMLAttributes","HTMLSpanElement","ref","Ref","width","height","circle","radius","Skeleton","t0","$","_c","className","props","style","t1","t2","undefined","t3","t4","borderRadius","t5","SkeletonTextProps","HTMLDivElement","lines","SkeletonText","Array","from","length","_","i","_c"],"sources":["../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLSpanElement> {\n ref?: React.Ref<HTMLSpanElement>;\n width?: number | string;\n height?: number | string;\n /** Render as a circle (uses `width` for both dimensions). */\n circle?: boolean;\n radius?: number | string;\n}\n\n/** Pulsing placeholder for content that is still loading. */\nexport function Skeleton({ width, height, circle, radius, className, style, ref, ...props }: SkeletonProps) {\n return (\n <span\n ref={ref}\n aria-hidden\n className={cx('oui-skeleton', className)}\n data-circle={circle || undefined}\n style={{\n width,\n height: circle ? width : height,\n borderRadius: radius,\n ...style,\n }}\n {...props}\n />\n );\n}\n\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n lines?: number;\n}\n\nexport function SkeletonText({ lines = 3, className, ref, ...props }: SkeletonTextProps) {\n return (\n <div ref={ref} aria-hidden className={cx('oui-skeleton-text', className)} {...props}>\n {Array.from({ length: lines }, (_, i) => (\n <Skeleton key={i} height=\"0.8rem\" width={i === lines - 1 && lines > 1 ? '60%' : '100%'} />\n ))}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Slider as BaseSlider } from '@base-ui/react/slider';
|
|
3
|
+
export interface SliderProps extends BaseSlider.Root.Props {
|
|
4
|
+
label?: React.ReactNode;
|
|
5
|
+
/** Show the formatted value next to the label. */
|
|
6
|
+
showValue?: boolean;
|
|
7
|
+
/** Accessible labels for each thumb (needed for range sliders). */
|
|
8
|
+
thumbLabels?: string[];
|
|
9
|
+
}
|
|
10
|
+
/** Single value or range (pass an array) slider. */
|
|
11
|
+
export declare function Slider({ label, showValue, thumbLabels, className, value, defaultValue, ref, ...props }: SliderProps): React.JSX.Element;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { withClass } from "../../utils/cx.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { Slider } from "@base-ui/react/slider";
|
|
7
|
+
//#region src/components/slider/Slider.tsx
|
|
8
|
+
/** Single value or range (pass an array) slider. */
|
|
9
|
+
function Slider$1(t0) {
|
|
10
|
+
const $ = c(26);
|
|
11
|
+
let className;
|
|
12
|
+
let defaultValue;
|
|
13
|
+
let label;
|
|
14
|
+
let props;
|
|
15
|
+
let ref;
|
|
16
|
+
let showValue;
|
|
17
|
+
let thumbLabels;
|
|
18
|
+
let value;
|
|
19
|
+
if ($[0] !== t0) {
|
|
20
|
+
({label, showValue, thumbLabels, className, value, defaultValue, ref, ...props} = t0);
|
|
21
|
+
$[0] = t0;
|
|
22
|
+
$[1] = className;
|
|
23
|
+
$[2] = defaultValue;
|
|
24
|
+
$[3] = label;
|
|
25
|
+
$[4] = props;
|
|
26
|
+
$[5] = ref;
|
|
27
|
+
$[6] = showValue;
|
|
28
|
+
$[7] = thumbLabels;
|
|
29
|
+
$[8] = value;
|
|
30
|
+
} else {
|
|
31
|
+
className = $[1];
|
|
32
|
+
defaultValue = $[2];
|
|
33
|
+
label = $[3];
|
|
34
|
+
props = $[4];
|
|
35
|
+
ref = $[5];
|
|
36
|
+
showValue = $[6];
|
|
37
|
+
thumbLabels = $[7];
|
|
38
|
+
value = $[8];
|
|
39
|
+
}
|
|
40
|
+
const initial = value ?? defaultValue;
|
|
41
|
+
const count = Array.isArray(initial) ? initial.length : 1;
|
|
42
|
+
let t1;
|
|
43
|
+
if ($[9] !== className) {
|
|
44
|
+
t1 = withClass("oui-slider", className);
|
|
45
|
+
$[9] = className;
|
|
46
|
+
$[10] = t1;
|
|
47
|
+
} else t1 = $[10];
|
|
48
|
+
let t2;
|
|
49
|
+
if ($[11] !== label || $[12] !== showValue) {
|
|
50
|
+
t2 = (label || showValue) && /* @__PURE__ */ jsxs("div", {
|
|
51
|
+
className: "oui-slider__header",
|
|
52
|
+
children: [label && /* @__PURE__ */ jsx(Slider.Label, {
|
|
53
|
+
className: "oui-field__label",
|
|
54
|
+
children: label
|
|
55
|
+
}), showValue && /* @__PURE__ */ jsx(Slider.Value, { className: "oui-slider__value" })]
|
|
56
|
+
});
|
|
57
|
+
$[11] = label;
|
|
58
|
+
$[12] = showValue;
|
|
59
|
+
$[13] = t2;
|
|
60
|
+
} else t2 = $[13];
|
|
61
|
+
let t3;
|
|
62
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
63
|
+
t3 = /* @__PURE__ */ jsx(Slider.Indicator, { className: "oui-slider__indicator" });
|
|
64
|
+
$[14] = t3;
|
|
65
|
+
} else t3 = $[14];
|
|
66
|
+
let t4;
|
|
67
|
+
if ($[15] !== count || $[16] !== thumbLabels) {
|
|
68
|
+
t4 = /* @__PURE__ */ jsx(Slider.Control, {
|
|
69
|
+
className: "oui-slider__control",
|
|
70
|
+
children: /* @__PURE__ */ jsxs(Slider.Track, {
|
|
71
|
+
className: "oui-slider__track",
|
|
72
|
+
children: [t3, Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx(Slider.Thumb, {
|
|
73
|
+
index: count > 1 ? index : void 0,
|
|
74
|
+
className: "oui-slider__thumb",
|
|
75
|
+
"aria-label": thumbLabels?.[index]
|
|
76
|
+
}, index))]
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
$[15] = count;
|
|
80
|
+
$[16] = thumbLabels;
|
|
81
|
+
$[17] = t4;
|
|
82
|
+
} else t4 = $[17];
|
|
83
|
+
let t5;
|
|
84
|
+
if ($[18] !== defaultValue || $[19] !== props || $[20] !== ref || $[21] !== t1 || $[22] !== t2 || $[23] !== t4 || $[24] !== value) {
|
|
85
|
+
t5 = /* @__PURE__ */ jsxs(Slider.Root, {
|
|
86
|
+
ref,
|
|
87
|
+
className: t1,
|
|
88
|
+
value,
|
|
89
|
+
defaultValue,
|
|
90
|
+
...props,
|
|
91
|
+
children: [t2, t4]
|
|
92
|
+
});
|
|
93
|
+
$[18] = defaultValue;
|
|
94
|
+
$[19] = props;
|
|
95
|
+
$[20] = ref;
|
|
96
|
+
$[21] = t1;
|
|
97
|
+
$[22] = t2;
|
|
98
|
+
$[23] = t4;
|
|
99
|
+
$[24] = value;
|
|
100
|
+
$[25] = t5;
|
|
101
|
+
} else t5 = $[25];
|
|
102
|
+
return t5;
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { Slider$1 as Slider };
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=Slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slider.js","names":["React","Slider","BaseSlider","withClass","SliderProps","Root","Props","label","ReactNode","showValue","thumbLabels","t0","$","_c","className","defaultValue","props","ref","value","initial","count","Array","isArray","length","t1","t2","t3","Symbol","for","t4","from","_","index","undefined","t5","Slider","_c","BaseSlider"],"sources":["../../../src/components/slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slider as BaseSlider } from '@base-ui/react/slider';\nimport { withClass } from '../../utils/cx';\n\nexport interface SliderProps extends BaseSlider.Root.Props {\n label?: React.ReactNode;\n /** Show the formatted value next to the label. */\n showValue?: boolean;\n /** Accessible labels for each thumb (needed for range sliders). */\n thumbLabels?: string[];\n}\n\n/** Single value or range (pass an array) slider. */\nexport function Slider({ label, showValue, thumbLabels, className, value, defaultValue, ref, ...props }: SliderProps) {\n const initial = value ?? defaultValue;\n const count = Array.isArray(initial) ? initial.length : 1;\n return (\n <BaseSlider.Root\n ref={ref}\n className={withClass('oui-slider', className)}\n value={value}\n defaultValue={defaultValue}\n {...props}\n >\n {(label || showValue) && (\n <div className=\"oui-slider__header\">\n {label && <BaseSlider.Label className=\"oui-field__label\">{label}</BaseSlider.Label>}\n {showValue && <BaseSlider.Value className=\"oui-slider__value\" />}\n </div>\n )}\n <BaseSlider.Control className=\"oui-slider__control\">\n <BaseSlider.Track className=\"oui-slider__track\">\n <BaseSlider.Indicator className=\"oui-slider__indicator\" />\n {Array.from({ length: count }, (_, index) => (\n <BaseSlider.Thumb\n key={index}\n index={count > 1 ? index : undefined}\n className=\"oui-slider__thumb\"\n aria-label={thumbLabels?.[index]}\n />\n ))}\n </BaseSlider.Track>\n </BaseSlider.Control>\n </BaseSlider.Root>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
ref?: React.Ref<HTMLSpanElement>;
|
|
4
|
+
/** Diameter, e.g. `1rem` or `24`. Defaults to `1.25em`. */
|
|
5
|
+
size?: number | string;
|
|
6
|
+
/** Accessible label. Set to `null` when a parent already announces loading. */
|
|
7
|
+
label?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function Spinner({ size, label, className, style, ref, ...props }: SpinnerProps): React.JSX.Element;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx } from "../../utils/cx.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/spinner/Spinner.tsx
|
|
7
|
+
function Spinner(t0) {
|
|
8
|
+
const $ = c(20);
|
|
9
|
+
let className;
|
|
10
|
+
let props;
|
|
11
|
+
let ref;
|
|
12
|
+
let size;
|
|
13
|
+
let style;
|
|
14
|
+
let t1;
|
|
15
|
+
if ($[0] !== t0) {
|
|
16
|
+
({size, label: t1, className, style, ref, ...props} = t0);
|
|
17
|
+
$[0] = t0;
|
|
18
|
+
$[1] = className;
|
|
19
|
+
$[2] = props;
|
|
20
|
+
$[3] = ref;
|
|
21
|
+
$[4] = size;
|
|
22
|
+
$[5] = style;
|
|
23
|
+
$[6] = t1;
|
|
24
|
+
} else {
|
|
25
|
+
className = $[1];
|
|
26
|
+
props = $[2];
|
|
27
|
+
ref = $[3];
|
|
28
|
+
size = $[4];
|
|
29
|
+
style = $[5];
|
|
30
|
+
t1 = $[6];
|
|
31
|
+
}
|
|
32
|
+
const label = t1 === void 0 ? "Loading" : t1;
|
|
33
|
+
const t2 = label ? "status" : void 0;
|
|
34
|
+
const t3 = label ?? void 0;
|
|
35
|
+
const t4 = label ? void 0 : true;
|
|
36
|
+
let t5;
|
|
37
|
+
if ($[7] !== className) {
|
|
38
|
+
t5 = cx("oui-spinner", className);
|
|
39
|
+
$[7] = className;
|
|
40
|
+
$[8] = t5;
|
|
41
|
+
} else t5 = $[8];
|
|
42
|
+
let t6;
|
|
43
|
+
if ($[9] !== size || $[10] !== style) {
|
|
44
|
+
t6 = size != null ? {
|
|
45
|
+
width: size,
|
|
46
|
+
height: size,
|
|
47
|
+
...style
|
|
48
|
+
} : style;
|
|
49
|
+
$[9] = size;
|
|
50
|
+
$[10] = style;
|
|
51
|
+
$[11] = t6;
|
|
52
|
+
} else t6 = $[11];
|
|
53
|
+
let t7;
|
|
54
|
+
if ($[12] !== props || $[13] !== ref || $[14] !== t2 || $[15] !== t3 || $[16] !== t4 || $[17] !== t5 || $[18] !== t6) {
|
|
55
|
+
t7 = /* @__PURE__ */ jsx("span", {
|
|
56
|
+
ref,
|
|
57
|
+
role: t2,
|
|
58
|
+
"aria-label": t3,
|
|
59
|
+
"aria-hidden": t4,
|
|
60
|
+
className: t5,
|
|
61
|
+
style: t6,
|
|
62
|
+
...props
|
|
63
|
+
});
|
|
64
|
+
$[12] = props;
|
|
65
|
+
$[13] = ref;
|
|
66
|
+
$[14] = t2;
|
|
67
|
+
$[15] = t3;
|
|
68
|
+
$[16] = t4;
|
|
69
|
+
$[17] = t5;
|
|
70
|
+
$[18] = t6;
|
|
71
|
+
$[19] = t7;
|
|
72
|
+
} else t7 = $[19];
|
|
73
|
+
return t7;
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
export { Spinner };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","names":["React","cx","SpinnerProps","HTMLAttributes","HTMLSpanElement","ref","Ref","size","label","Spinner","t0","$","_c","className","props","style","t1","undefined","t2","t3","t4","t5","t6","width","height","t7","_c"],"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n ref?: React.Ref<HTMLSpanElement>;\n /** Diameter, e.g. `1rem` or `24`. Defaults to `1.25em`. */\n size?: number | string;\n /** Accessible label. Set to `null` when a parent already announces loading. */\n label?: string | null;\n}\n\nexport function Spinner({ size, label = 'Loading', className, style, ref, ...props }: SpinnerProps) {\n return (\n <span\n ref={ref}\n role={label ? 'status' : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n className={cx('oui-spinner', className)}\n style={size != null ? { width: size, height: size, ...style } : style}\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;AAWA,SAAOS,QAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAT;CAAA,IAAAE;CAAA,IAAAQ;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAiB,CAAA,CAAAH,MAAAC,OAAAQ,IAAAH,WAAAE,OAAAV,KAAA,GAAAS,SAAAJ;EAA0EC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAN;EAAAM,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAH,YAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAN,MAAAM,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,QAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAAlE,MAAAH,QAAAQ,OAAAC,KAAAA,IAAA,YAAAD;CAIpB,MAAAE,KAAAV,QAAA,WAAAS,KAAAA;CACM,MAAAE,KAAAX,SAAAS,KAAAA;CACC,MAAAG,KAAAZ,QAAAS,KAAAA,IAAA;CAAwB,IAAAI;CAAA,IAAAV,EAAA,OAAAE,WAAA;EAC1BQ,KAAApB,GAAG,eAAeY,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,OAAAJ,QAAAI,EAAA,QAAAI,OAAA;EAChCO,KAAAf,QAAQ,OAAR;GAAAgB,OAAwBhB;GAAIiB,QAAUjB;GAAI,GAAKQ;EAAc,IAA7DA;EAA8DJ,EAAA,KAAAJ;EAAAI,EAAA,MAAAI;EAAAJ,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,QAAAG,SAAAH,EAAA,QAAAN,OAAAM,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,IAAA;EANvEG,KAAA,oBAAA,QAAA;GACOpB;GACC,MAAAa;GACM,cAAAC;GACC,eAAAC;GACF,WAAAC;GACJ,OAAAC;GAA8D,GACjER;EAAK,CAAA;EACTH,EAAA,MAAAG;EAAAH,EAAA,MAAAN;EAAAM,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,OARFc;AAQE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
2
|
+
export type StackGap = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
3
|
+
export type StackState = {
|
|
4
|
+
direction: 'column' | 'row';
|
|
5
|
+
gap: StackGap;
|
|
6
|
+
align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';
|
|
7
|
+
justify?: 'start' | 'center' | 'end' | 'between';
|
|
8
|
+
wrap: boolean;
|
|
9
|
+
};
|
|
10
|
+
export interface StackProps extends useRender.ComponentProps<'div', StackState> {
|
|
11
|
+
/** `column` (default) stacks children, `row` puts them on a line. */
|
|
12
|
+
direction?: StackState['direction'];
|
|
13
|
+
/** Space between children. Override with `--oui-stack-gap`. */
|
|
14
|
+
gap?: StackGap;
|
|
15
|
+
/** Cross-axis alignment. Defaults to `stretch` in a column and `center` in a row. */
|
|
16
|
+
align?: StackState['align'];
|
|
17
|
+
/** Main-axis distribution. */
|
|
18
|
+
justify?: StackState['justify'];
|
|
19
|
+
/** Let a row's children wrap onto more lines. */
|
|
20
|
+
wrap?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** Flex container that spaces its children evenly, in a column or a row. */
|
|
23
|
+
export declare function Stack({ direction, gap, align, justify, wrap, render, ref, ...props }: StackProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
5
|
+
//#region src/components/stack/Stack.tsx
|
|
6
|
+
/** Flex container that spaces its children evenly, in a column or a row. */
|
|
7
|
+
function Stack(t0) {
|
|
8
|
+
const $ = c(19);
|
|
9
|
+
let t1;
|
|
10
|
+
let t2;
|
|
11
|
+
let t3;
|
|
12
|
+
let t4;
|
|
13
|
+
let t5;
|
|
14
|
+
let t6;
|
|
15
|
+
if ($[0] !== t0) {
|
|
16
|
+
const { direction: t7, gap: t8, align, justify, wrap: t9, render, ref, ...props } = t0;
|
|
17
|
+
const direction = t7 === void 0 ? "column" : t7;
|
|
18
|
+
const gap = t8 === void 0 ? "md" : t8;
|
|
19
|
+
const wrap = t9 === void 0 ? false : t9;
|
|
20
|
+
let t10;
|
|
21
|
+
if ($[7] !== align || $[8] !== direction || $[9] !== gap || $[10] !== justify || $[11] !== wrap) {
|
|
22
|
+
t10 = {
|
|
23
|
+
direction,
|
|
24
|
+
gap,
|
|
25
|
+
align,
|
|
26
|
+
justify,
|
|
27
|
+
wrap
|
|
28
|
+
};
|
|
29
|
+
$[7] = align;
|
|
30
|
+
$[8] = direction;
|
|
31
|
+
$[9] = gap;
|
|
32
|
+
$[10] = justify;
|
|
33
|
+
$[11] = wrap;
|
|
34
|
+
$[12] = t10;
|
|
35
|
+
} else t10 = $[12];
|
|
36
|
+
const state = t10;
|
|
37
|
+
t6 = useRender;
|
|
38
|
+
t1 = "div";
|
|
39
|
+
t2 = render;
|
|
40
|
+
t3 = ref;
|
|
41
|
+
t4 = state;
|
|
42
|
+
t5 = mergeProps({ className: "oui-stack" }, props);
|
|
43
|
+
$[0] = t0;
|
|
44
|
+
$[1] = t1;
|
|
45
|
+
$[2] = t2;
|
|
46
|
+
$[3] = t3;
|
|
47
|
+
$[4] = t4;
|
|
48
|
+
$[5] = t5;
|
|
49
|
+
$[6] = t6;
|
|
50
|
+
} else {
|
|
51
|
+
t1 = $[1];
|
|
52
|
+
t2 = $[2];
|
|
53
|
+
t3 = $[3];
|
|
54
|
+
t4 = $[4];
|
|
55
|
+
t5 = $[5];
|
|
56
|
+
t6 = $[6];
|
|
57
|
+
}
|
|
58
|
+
let t7;
|
|
59
|
+
if ($[13] !== t1 || $[14] !== t2 || $[15] !== t3 || $[16] !== t4 || $[17] !== t5) {
|
|
60
|
+
t7 = {
|
|
61
|
+
defaultTagName: t1,
|
|
62
|
+
render: t2,
|
|
63
|
+
ref: t3,
|
|
64
|
+
state: t4,
|
|
65
|
+
props: t5
|
|
66
|
+
};
|
|
67
|
+
$[13] = t1;
|
|
68
|
+
$[14] = t2;
|
|
69
|
+
$[15] = t3;
|
|
70
|
+
$[16] = t4;
|
|
71
|
+
$[17] = t5;
|
|
72
|
+
$[18] = t7;
|
|
73
|
+
} else t7 = $[18];
|
|
74
|
+
return t6(t7);
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { Stack };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=Stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stack.js","names":["useRender","mergeProps","StackGap","StackState","direction","gap","align","justify","wrap","StackProps","ComponentProps","Stack","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","t8","t9","render","ref","props","undefined","t10","state","className","defaultTagName","_c"],"sources":["../../../src/components/stack/Stack.tsx"],"sourcesContent":["import { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\n\nexport type StackGap = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport type StackState = {\n direction: 'column' | 'row';\n gap: StackGap;\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justify?: 'start' | 'center' | 'end' | 'between';\n wrap: boolean;\n};\n\nexport interface StackProps extends useRender.ComponentProps<'div', StackState> {\n /** `column` (default) stacks children, `row` puts them on a line. */\n direction?: StackState['direction'];\n /** Space between children. Override with `--oui-stack-gap`. */\n gap?: StackGap;\n /** Cross-axis alignment. Defaults to `stretch` in a column and `center` in a row. */\n align?: StackState['align'];\n /** Main-axis distribution. */\n justify?: StackState['justify'];\n /** Let a row's children wrap onto more lines. */\n wrap?: boolean;\n}\n\n/** Flex container that spaces its children evenly, in a column or a row. */\nexport function Stack({\n direction = 'column',\n gap = 'md',\n align,\n justify,\n wrap = false,\n render,\n ref,\n ...props\n}: StackProps) {\n const state: StackState = { direction, gap, align, justify, wrap };\n return useRender({\n defaultTagName: 'div',\n render,\n ref,\n state,\n props: mergeProps<'div'>({ className: 'oui-stack' }, props),\n });\n}\n"],"mappings":";;;;;;AA2BA,SAAOW,MAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAP,EAAA,OAAAD,IAAA;EAAe,MAAA,EAAAR,WAAAiB,IAAAhB,KAAAiB,IAAAhB,OAAAC,SAAAC,MAAAe,IAAAC,QAAAC,KAAA,GAAAC,UAAAd;EACpB,MAAAR,YAAAiB,OAAAM,KAAAA,IAAA,WAAAN;EACA,MAAAhB,MAAAiB,OAAAK,KAAAA,IAAA,OAAAL;EAGA,MAAAd,OAAAe,OAAAI,KAAAA,IAAA,QAAAJ;EAAY,IAAAK;EAAA,IAAAf,EAAA,OAAAP,SAAAO,EAAA,OAAAT,aAAAS,EAAA,OAAAR,OAAAQ,EAAA,QAAAN,WAAAM,EAAA,QAAAL,MAAA;GAKcoB,MAAA;IAAAxB;IAAAC;IAAAC;IAAAC;IAAAC;GAAuC;GAACK,EAAA,KAAAP;GAAAO,EAAA,KAAAT;GAAAS,EAAA,KAAAR;GAAAQ,EAAA,MAAAN;GAAAM,EAAA,MAAAL;GAAAK,EAAA,MAAAe;EAAA,OAAAA,MAAAf,EAAA;EAAlE,MAAAgB,QAA0BD;EACnB5B,KAAAA;EACWe,KAAA;EAChBS,KAAAA;EACAC,KAAAA;EACAI,KAAAA;EACOV,KAAAlB,WAAkB,EAAA6B,WAAa,YAAY,GAAGJ,KAAK;EAACb,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAA;EAAAL,KAAAF,EAAA;EAAAG,KAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAAM,KAAAN,EAAA;EAAAO,KAAAP,EAAA;CAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,QAAAE,MAAAF,EAAA,QAAAG,MAAAH,EAAA,QAAAI,MAAAJ,EAAA,QAAAK,MAAAL,EAAA,QAAAM,IAAA;EAL5CE,KAAA;GAAAU,gBACChB;GAAKS,QACrBA;GAAMC,KACNA;GAAGI,OACHA;GAAKH,OACEP;EACT;EAACN,EAAA,MAAAE;EAAAF,EAAA,MAAAG;EAAAH,EAAA,MAAAI;EAAAJ,EAAA,MAAAK;EAAAL,EAAA,MAAAM;EAAAN,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OANMb,GAAUqB,EAMhB;AAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type CardProps } from '../card/Card';
|
|
3
|
+
export type StatTrend = 'up' | 'down' | 'flat';
|
|
4
|
+
export type StatTone = 'positive' | 'negative' | 'neutral';
|
|
5
|
+
export interface StatCardProps extends Omit<CardProps, 'children'> {
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
value: React.ReactNode;
|
|
8
|
+
/** Small uppercase unit under the value, e.g. "kWh" or "orders". */
|
|
9
|
+
unit?: React.ReactNode;
|
|
10
|
+
/** Change indicator, e.g. "+12.4%". */
|
|
11
|
+
delta?: React.ReactNode;
|
|
12
|
+
trend?: StatTrend;
|
|
13
|
+
/** Color of the delta. Defaults to positive for `up`, negative for `down`. */
|
|
14
|
+
tone?: StatTone;
|
|
15
|
+
/** Supporting text under the value. */
|
|
16
|
+
hint?: React.ReactNode;
|
|
17
|
+
/** Icon tile shown in the top-right corner. */
|
|
18
|
+
icon?: React.ReactNode;
|
|
19
|
+
loading?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** KPI tile: label, large value, optional unit and trend. */
|
|
22
|
+
export declare function StatCard({ label, value, unit, delta, trend, tone, hint, icon, loading, className, ref, ...props }: StatCardProps): React.JSX.Element;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx } from "../../utils/cx.js";
|
|
3
|
+
import { TrendingDownIcon, TrendingUpIcon } from "../../icons/index.js";
|
|
4
|
+
import { Card } from "../card/Card.js";
|
|
5
|
+
import { Skeleton } from "../skeleton/Skeleton.js";
|
|
6
|
+
import { c } from "react/compiler-runtime";
|
|
7
|
+
import "react";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
//#region src/components/stat-card/StatCard.tsx
|
|
10
|
+
/** KPI tile: label, large value, optional unit and trend. */
|
|
11
|
+
function StatCard(t0) {
|
|
12
|
+
const $ = c(36);
|
|
13
|
+
let className;
|
|
14
|
+
let delta;
|
|
15
|
+
let hint;
|
|
16
|
+
let icon;
|
|
17
|
+
let label;
|
|
18
|
+
let loading;
|
|
19
|
+
let props;
|
|
20
|
+
let ref;
|
|
21
|
+
let tone;
|
|
22
|
+
let trend;
|
|
23
|
+
let unit;
|
|
24
|
+
let value;
|
|
25
|
+
if ($[0] !== t0) {
|
|
26
|
+
({label, value, unit, delta, trend, tone, hint, icon, loading, className, ref, ...props} = t0);
|
|
27
|
+
$[0] = t0;
|
|
28
|
+
$[1] = className;
|
|
29
|
+
$[2] = delta;
|
|
30
|
+
$[3] = hint;
|
|
31
|
+
$[4] = icon;
|
|
32
|
+
$[5] = label;
|
|
33
|
+
$[6] = loading;
|
|
34
|
+
$[7] = props;
|
|
35
|
+
$[8] = ref;
|
|
36
|
+
$[9] = tone;
|
|
37
|
+
$[10] = trend;
|
|
38
|
+
$[11] = unit;
|
|
39
|
+
$[12] = value;
|
|
40
|
+
} else {
|
|
41
|
+
className = $[1];
|
|
42
|
+
delta = $[2];
|
|
43
|
+
hint = $[3];
|
|
44
|
+
icon = $[4];
|
|
45
|
+
label = $[5];
|
|
46
|
+
loading = $[6];
|
|
47
|
+
props = $[7];
|
|
48
|
+
ref = $[8];
|
|
49
|
+
tone = $[9];
|
|
50
|
+
trend = $[10];
|
|
51
|
+
unit = $[11];
|
|
52
|
+
value = $[12];
|
|
53
|
+
}
|
|
54
|
+
const resolvedTone = tone ?? (trend === "up" ? "positive" : trend === "down" ? "negative" : "neutral");
|
|
55
|
+
let t1;
|
|
56
|
+
if ($[13] !== className) {
|
|
57
|
+
t1 = cx("oui-stat", className);
|
|
58
|
+
$[13] = className;
|
|
59
|
+
$[14] = t1;
|
|
60
|
+
} else t1 = $[14];
|
|
61
|
+
let t2;
|
|
62
|
+
if ($[15] !== label) {
|
|
63
|
+
t2 = /* @__PURE__ */ jsx("p", {
|
|
64
|
+
className: "oui-stat__label",
|
|
65
|
+
children: label
|
|
66
|
+
});
|
|
67
|
+
$[15] = label;
|
|
68
|
+
$[16] = t2;
|
|
69
|
+
} else t2 = $[16];
|
|
70
|
+
let t3;
|
|
71
|
+
if ($[17] !== icon) {
|
|
72
|
+
t3 = icon && /* @__PURE__ */ jsx("span", {
|
|
73
|
+
className: "oui-stat__icon",
|
|
74
|
+
children: icon
|
|
75
|
+
});
|
|
76
|
+
$[17] = icon;
|
|
77
|
+
$[18] = t3;
|
|
78
|
+
} else t3 = $[18];
|
|
79
|
+
let t4;
|
|
80
|
+
if ($[19] !== t2 || $[20] !== t3) {
|
|
81
|
+
t4 = /* @__PURE__ */ jsxs("div", {
|
|
82
|
+
className: "oui-stat__header",
|
|
83
|
+
children: [t2, t3]
|
|
84
|
+
});
|
|
85
|
+
$[19] = t2;
|
|
86
|
+
$[20] = t3;
|
|
87
|
+
$[21] = t4;
|
|
88
|
+
} else t4 = $[21];
|
|
89
|
+
let t5;
|
|
90
|
+
if ($[22] !== delta || $[23] !== hint || $[24] !== loading || $[25] !== resolvedTone || $[26] !== trend || $[27] !== unit || $[28] !== value) {
|
|
91
|
+
t5 = loading ? /* @__PURE__ */ jsxs("div", {
|
|
92
|
+
className: "oui-stat__loading",
|
|
93
|
+
children: [/* @__PURE__ */ jsx(Skeleton, {
|
|
94
|
+
height: "2.25rem",
|
|
95
|
+
width: "55%"
|
|
96
|
+
}), /* @__PURE__ */ jsx(Skeleton, {
|
|
97
|
+
height: "0.9rem",
|
|
98
|
+
width: "35%"
|
|
99
|
+
})]
|
|
100
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
|
|
101
|
+
className: "oui-stat__body",
|
|
102
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
103
|
+
className: "oui-stat__value",
|
|
104
|
+
children: value
|
|
105
|
+
}), unit && /* @__PURE__ */ jsx("p", {
|
|
106
|
+
className: "oui-stat__unit",
|
|
107
|
+
children: unit
|
|
108
|
+
})]
|
|
109
|
+
}), (delta || hint) && /* @__PURE__ */ jsxs("div", {
|
|
110
|
+
className: "oui-stat__footer",
|
|
111
|
+
children: [delta && /* @__PURE__ */ jsxs("span", {
|
|
112
|
+
className: "oui-stat__delta",
|
|
113
|
+
"data-tone": resolvedTone,
|
|
114
|
+
children: [
|
|
115
|
+
trend === "up" && /* @__PURE__ */ jsx(TrendingUpIcon, {}),
|
|
116
|
+
trend === "down" && /* @__PURE__ */ jsx(TrendingDownIcon, {}),
|
|
117
|
+
delta
|
|
118
|
+
]
|
|
119
|
+
}), hint && /* @__PURE__ */ jsx("span", {
|
|
120
|
+
className: "oui-stat__hint",
|
|
121
|
+
children: hint
|
|
122
|
+
})]
|
|
123
|
+
})] });
|
|
124
|
+
$[22] = delta;
|
|
125
|
+
$[23] = hint;
|
|
126
|
+
$[24] = loading;
|
|
127
|
+
$[25] = resolvedTone;
|
|
128
|
+
$[26] = trend;
|
|
129
|
+
$[27] = unit;
|
|
130
|
+
$[28] = value;
|
|
131
|
+
$[29] = t5;
|
|
132
|
+
} else t5 = $[29];
|
|
133
|
+
let t6;
|
|
134
|
+
if ($[30] !== props || $[31] !== ref || $[32] !== t1 || $[33] !== t4 || $[34] !== t5) {
|
|
135
|
+
t6 = /* @__PURE__ */ jsxs(Card, {
|
|
136
|
+
ref,
|
|
137
|
+
className: t1,
|
|
138
|
+
...props,
|
|
139
|
+
children: [t4, t5]
|
|
140
|
+
});
|
|
141
|
+
$[30] = props;
|
|
142
|
+
$[31] = ref;
|
|
143
|
+
$[32] = t1;
|
|
144
|
+
$[33] = t4;
|
|
145
|
+
$[34] = t5;
|
|
146
|
+
$[35] = t6;
|
|
147
|
+
} else t6 = $[35];
|
|
148
|
+
return t6;
|
|
149
|
+
}
|
|
150
|
+
//#endregion
|
|
151
|
+
export { StatCard };
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=StatCard.js.map
|