@sero-ai/ui 0.4.1 → 0.4.2
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/.turbo/turbo-build.log +628 -615
- package/.turbo/turbo-test.log +18 -0
- package/.turbo/turbo-typecheck.log +1 -1
- package/dist/components/ai-elements/agent.cjs +6 -6
- package/dist/components/ai-elements/agent.js +6 -6
- package/dist/components/ai-elements/artifact.cjs +2 -2
- package/dist/components/ai-elements/artifact.js +2 -2
- package/dist/components/ai-elements/attachments.cjs +2 -2
- package/dist/components/ai-elements/attachments.js +2 -2
- package/dist/components/ai-elements/chain-of-thought.cjs +2 -2
- package/dist/components/ai-elements/chain-of-thought.js +2 -2
- package/dist/components/ai-elements/code-block.cjs +7 -5
- package/dist/components/ai-elements/code-block.d.cts +2 -1
- package/dist/components/ai-elements/code-block.d.ts +2 -1
- package/dist/components/ai-elements/code-block.js +7 -5
- package/dist/components/ai-elements/commit.cjs +2 -2
- package/dist/components/ai-elements/commit.js +2 -2
- package/dist/components/ai-elements/confirmation.cjs +1 -1
- package/dist/components/ai-elements/confirmation.js +1 -1
- package/dist/components/ai-elements/conversation.cjs +2 -2
- package/dist/components/ai-elements/conversation.js +2 -2
- package/dist/components/ai-elements/environment-variables.cjs +3 -3
- package/dist/components/ai-elements/environment-variables.js +3 -3
- package/dist/components/ai-elements/file-tree.cjs +1 -1
- package/dist/components/ai-elements/file-tree.js +1 -1
- package/dist/components/ai-elements/inline-citation.cjs +3 -3
- package/dist/components/ai-elements/inline-citation.js +3 -3
- package/dist/components/ai-elements/jsx-preview.cjs +1 -1
- package/dist/components/ai-elements/jsx-preview.js +1 -1
- package/dist/components/ai-elements/message.cjs +1 -1
- package/dist/components/ai-elements/message.js +1 -1
- package/dist/components/ai-elements/package-info.cjs +4 -4
- package/dist/components/ai-elements/package-info.js +4 -4
- package/dist/components/ai-elements/prompt-input-context.cjs +2 -3
- package/dist/components/ai-elements/prompt-input-context.js +2 -3
- package/dist/components/ai-elements/queue.cjs +2 -2
- package/dist/components/ai-elements/queue.js +2 -2
- package/dist/components/ai-elements/reasoning.cjs +2 -2
- package/dist/components/ai-elements/reasoning.js +2 -2
- package/dist/components/ai-elements/sandbox.cjs +3 -3
- package/dist/components/ai-elements/sandbox.js +3 -3
- package/dist/components/ai-elements/schema-display.cjs +12 -12
- package/dist/components/ai-elements/schema-display.js +12 -12
- package/dist/components/ai-elements/speech-input.cjs +18 -2
- package/dist/components/ai-elements/speech-input.js +16 -0
- package/dist/components/ai-elements/stack-trace.cjs +1 -1
- package/dist/components/ai-elements/stack-trace.js +1 -1
- package/dist/components/ai-elements/task.cjs +3 -3
- package/dist/components/ai-elements/task.js +3 -3
- package/dist/components/ai-elements/terminal.cjs +2 -2
- package/dist/components/ai-elements/terminal.js +2 -2
- package/dist/components/ai-elements/test-results.cjs +4 -4
- package/dist/components/ai-elements/test-results.js +4 -4
- package/dist/components/ai-elements/tool.cjs +4 -4
- package/dist/components/ai-elements/tool.js +4 -4
- package/dist/components/ai-elements/transcription.cjs +1 -1
- package/dist/components/ai-elements/transcription.js +1 -1
- package/dist/components/ai-elements/web-preview.cjs +2 -2
- package/dist/components/ai-elements/web-preview.js +2 -2
- package/dist/components/context-editor/CapabilitySection.cjs +2 -2
- package/dist/components/context-editor/CapabilitySection.js +2 -2
- package/dist/components/context-editor/ContextEditor.cjs +2 -2
- package/dist/components/context-editor/ContextEditor.js +2 -2
- package/dist/components/context-editor/PresetBar.cjs +3 -3
- package/dist/components/context-editor/PresetBar.js +3 -3
- package/dist/components/context-editor/SystemPromptSection.cjs +4 -4
- package/dist/components/context-editor/SystemPromptSection.js +4 -4
- package/dist/components/context-editor/parts.cjs +6 -6
- package/dist/components/context-editor/parts.js +6 -6
- package/dist/components/dashboard/activity-list.cjs +2 -2
- package/dist/components/dashboard/activity-list.js +2 -2
- package/dist/components/dashboard/empty-state.cjs +1 -1
- package/dist/components/dashboard/empty-state.js +1 -1
- package/dist/components/dashboard/item-list.cjs +2 -2
- package/dist/components/dashboard/item-list.js +2 -2
- package/dist/components/dashboard/layout.cjs +1 -1
- package/dist/components/dashboard/layout.js +1 -1
- package/dist/components/dashboard/metric.cjs +1 -1
- package/dist/components/dashboard/metric.js +1 -1
- package/dist/components/dashboard/stale-indicator.cjs +1 -1
- package/dist/components/dashboard/stale-indicator.js +1 -1
- package/dist/components/dashboard/typography.cjs +4 -4
- package/dist/components/dashboard/typography.d.cts +1 -1
- package/dist/components/dashboard/typography.d.ts +1 -1
- package/dist/components/dashboard/typography.js +4 -4
- package/dist/components/model-selection/available-model-picker.cjs +6 -6
- package/dist/components/model-selection/available-model-picker.js +6 -6
- package/dist/components/model-selection/thinking-level-picker.cjs +1 -1
- package/dist/components/model-selection/thinking-level-picker.js +1 -1
- package/dist/components/model-selection/thinking-picker.cjs +70 -0
- package/dist/components/model-selection/thinking-picker.d.cts +12 -0
- package/dist/components/model-selection/thinking-picker.d.ts +12 -0
- package/dist/components/model-selection/thinking-picker.js +70 -0
- package/dist/components/ui/accordion.cjs +2 -2
- package/dist/components/ui/accordion.js +2 -2
- package/dist/components/ui/alert-dialog.cjs +4 -2
- package/dist/components/ui/alert-dialog.js +4 -2
- package/dist/components/ui/alert.cjs +2 -2
- package/dist/components/ui/alert.js +2 -2
- package/dist/components/ui/avatar.cjs +2 -2
- package/dist/components/ui/avatar.js +2 -2
- package/dist/components/ui/breadcrumb.cjs +1 -1
- package/dist/components/ui/breadcrumb.js +1 -1
- package/dist/components/ui/button-group.cjs +1 -1
- package/dist/components/ui/button-group.js +1 -1
- package/dist/components/ui/button.cjs +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/calendar.cjs +2 -2
- package/dist/components/ui/calendar.js +2 -2
- package/dist/components/ui/card.cjs +1 -1
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/carousel.cjs +3 -2
- package/dist/components/ui/carousel.js +2 -1
- package/dist/components/ui/chart.cjs +36 -27
- package/dist/components/ui/chart.d.cts +21 -17
- package/dist/components/ui/chart.d.ts +21 -17
- package/dist/components/ui/chart.js +30 -21
- package/dist/components/ui/combobox.cjs +7 -5
- package/dist/components/ui/combobox.js +7 -5
- package/dist/components/ui/command.cjs +3 -3
- package/dist/components/ui/command.js +3 -3
- package/dist/components/ui/context-menu.cjs +10 -7
- package/dist/components/ui/context-menu.js +10 -7
- package/dist/components/ui/dialog.cjs +4 -2
- package/dist/components/ui/dialog.js +4 -2
- package/dist/components/ui/drawer.cjs +4 -2
- package/dist/components/ui/drawer.js +4 -2
- package/dist/components/ui/dropdown-menu.cjs +10 -7
- package/dist/components/ui/dropdown-menu.js +10 -7
- package/dist/components/ui/empty.cjs +2 -2
- package/dist/components/ui/empty.js +2 -2
- package/dist/components/ui/field.cjs +5 -5
- package/dist/components/ui/field.js +5 -5
- package/dist/components/ui/form.cjs +2 -2
- package/dist/components/ui/form.js +2 -2
- package/dist/components/ui/hover-card.cjs +3 -1
- package/dist/components/ui/hover-card.js +3 -1
- package/dist/components/ui/input-group.cjs +3 -3
- package/dist/components/ui/input-group.js +3 -3
- package/dist/components/ui/input-otp.cjs +1 -1
- package/dist/components/ui/input-otp.js +1 -1
- package/dist/components/ui/input.cjs +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/item.cjs +3 -3
- package/dist/components/ui/item.js +3 -3
- package/dist/components/ui/label.cjs +1 -1
- package/dist/components/ui/label.js +1 -1
- package/dist/components/ui/menubar.cjs +9 -7
- package/dist/components/ui/menubar.js +9 -7
- package/dist/components/ui/native-select.cjs +1 -1
- package/dist/components/ui/native-select.js +1 -1
- package/dist/components/ui/navigation-menu.cjs +2 -2
- package/dist/components/ui/navigation-menu.js +2 -2
- package/dist/components/ui/plugin-safety-disclaimer.cjs +1 -1
- package/dist/components/ui/plugin-safety-disclaimer.js +1 -1
- package/dist/components/ui/popover.cjs +4 -2
- package/dist/components/ui/popover.js +4 -2
- package/dist/components/ui/select.cjs +5 -3
- package/dist/components/ui/select.js +5 -3
- package/dist/components/ui/sheet.cjs +4 -2
- package/dist/components/ui/sheet.js +4 -2
- package/dist/components/ui/sidebar.cjs +5 -5
- package/dist/components/ui/sidebar.js +5 -5
- package/dist/components/ui/table.cjs +2 -2
- package/dist/components/ui/table.js +2 -2
- package/dist/components/ui/tabs.cjs +1 -1
- package/dist/components/ui/tabs.js +1 -1
- package/dist/components/ui/textarea.cjs +1 -1
- package/dist/components/ui/textarea.js +1 -1
- package/dist/components/ui/toggle.cjs +1 -1
- package/dist/components/ui/toggle.js +1 -1
- package/dist/components/ui/tooltip.cjs +3 -1
- package/dist/components/ui/tooltip.js +3 -1
- package/dist/index.cjs +5 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -1
- package/dist/plugin-style-scope-context.cjs +10 -0
- package/dist/plugin-style-scope-context.d.cts +13 -0
- package/dist/plugin-style-scope-context.d.ts +13 -0
- package/dist/plugin-style-scope-context.js +10 -0
- package/dist/plugin-style-scope.cjs +25 -0
- package/dist/plugin-style-scope.d.cts +11 -0
- package/dist/plugin-style-scope.d.ts +11 -0
- package/dist/plugin-style-scope.js +25 -0
- package/dist/reference.cjs +15 -15
- package/dist/reference.js +15 -15
- package/dist/styles/globals.css +22 -3
- package/dist/styles/plugin-theme.css +80 -0
- package/dist/styles/plugin.css +14 -2
- package/package.json +2 -2
- package/src/components/ai-elements/agent.tsx +6 -6
- package/src/components/ai-elements/artifact.tsx +2 -2
- package/src/components/ai-elements/attachments.tsx +2 -2
- package/src/components/ai-elements/chain-of-thought.tsx +2 -2
- package/src/components/ai-elements/code-block.tsx +6 -3
- package/src/components/ai-elements/commit.tsx +2 -2
- package/src/components/ai-elements/confirmation.tsx +1 -1
- package/src/components/ai-elements/conversation.tsx +2 -2
- package/src/components/ai-elements/environment-variables.tsx +3 -3
- package/src/components/ai-elements/file-tree.tsx +1 -1
- package/src/components/ai-elements/inline-citation.tsx +3 -3
- package/src/components/ai-elements/jsx-preview.tsx +1 -1
- package/src/components/ai-elements/message.tsx +1 -1
- package/src/components/ai-elements/package-info.tsx +4 -4
- package/src/components/ai-elements/prompt-input-context.tsx +3 -2
- package/src/components/ai-elements/queue.tsx +2 -2
- package/src/components/ai-elements/reasoning.tsx +2 -2
- package/src/components/ai-elements/sandbox.tsx +3 -3
- package/src/components/ai-elements/schema-display.tsx +12 -12
- package/src/components/ai-elements/speech-input.tsx +17 -0
- package/src/components/ai-elements/stack-trace.tsx +1 -1
- package/src/components/ai-elements/task.tsx +3 -3
- package/src/components/ai-elements/terminal.tsx +2 -2
- package/src/components/ai-elements/test-results.tsx +4 -4
- package/src/components/ai-elements/tool.tsx +4 -4
- package/src/components/ai-elements/transcription.tsx +1 -1
- package/src/components/ai-elements/web-preview.tsx +2 -2
- package/src/components/context-editor/CapabilitySection.tsx +2 -2
- package/src/components/context-editor/ContextEditor.tsx +2 -2
- package/src/components/context-editor/PresetBar.tsx +3 -3
- package/src/components/context-editor/SystemPromptSection.tsx +4 -4
- package/src/components/context-editor/parts.tsx +6 -6
- package/src/components/dashboard/activity-list.tsx +2 -2
- package/src/components/dashboard/empty-state.tsx +1 -1
- package/src/components/dashboard/item-list.tsx +2 -2
- package/src/components/dashboard/layout.tsx +1 -1
- package/src/components/dashboard/metric.tsx +1 -1
- package/src/components/dashboard/stale-indicator.tsx +1 -1
- package/src/components/dashboard/typography.tsx +5 -5
- package/src/components/model-selection/available-model-picker.tsx +7 -7
- package/src/components/model-selection/thinking-level-picker.tsx +1 -1
- package/src/components/model-selection/thinking-picker.tsx +90 -0
- package/src/components/ui/accordion.tsx +2 -2
- package/src/components/ui/alert-dialog.tsx +4 -2
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/avatar.tsx +2 -2
- package/src/components/ui/breadcrumb.tsx +1 -1
- package/src/components/ui/button-group.tsx +1 -1
- package/src/components/ui/button.tsx +1 -1
- package/src/components/ui/calendar.tsx +3 -3
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/carousel.tsx +2 -1
- package/src/components/ui/chart.tsx +54 -36
- package/src/components/ui/combobox.tsx +7 -5
- package/src/components/ui/command.tsx +3 -3
- package/src/components/ui/context-menu.tsx +10 -7
- package/src/components/ui/dialog.tsx +4 -2
- package/src/components/ui/drawer.tsx +4 -2
- package/src/components/ui/dropdown-menu.tsx +10 -7
- package/src/components/ui/empty.tsx +2 -2
- package/src/components/ui/field.tsx +5 -5
- package/src/components/ui/form.tsx +2 -2
- package/src/components/ui/hover-card.tsx +3 -1
- package/src/components/ui/input-group.tsx +3 -3
- package/src/components/ui/input-otp.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/item.tsx +3 -3
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/menubar.tsx +9 -7
- package/src/components/ui/native-select.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +2 -2
- package/src/components/ui/plugin-safety-disclaimer.tsx +1 -1
- package/src/components/ui/popover.tsx +4 -2
- package/src/components/ui/select.tsx +5 -3
- package/src/components/ui/sheet.tsx +4 -2
- package/src/components/ui/sidebar.tsx +5 -5
- package/src/components/ui/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +3 -1
- package/src/index.ts +2 -0
- package/src/plugin-style-scope-context.ts +21 -0
- package/src/plugin-style-scope.test.tsx +38 -0
- package/src/plugin-style-scope.tsx +35 -0
- package/src/styles/globals.css +22 -3
- package/src/styles/plugin-theme.css +80 -0
- package/src/styles/plugin.css +14 -2
|
@@ -63,7 +63,7 @@ function Calendar({
|
|
|
63
63
|
defaultClassNames.month_caption
|
|
64
64
|
),
|
|
65
65
|
dropdowns: _utils.cn.call(void 0,
|
|
66
|
-
"w-full flex items-center text-
|
|
66
|
+
"w-full flex items-center text-base font-medium justify-center h-(--cell-size) gap-1.5",
|
|
67
67
|
defaultClassNames.dropdowns
|
|
68
68
|
),
|
|
69
69
|
dropdown_root: _utils.cn.call(void 0,
|
|
@@ -76,7 +76,7 @@ function Calendar({
|
|
|
76
76
|
),
|
|
77
77
|
caption_label: _utils.cn.call(void 0,
|
|
78
78
|
"select-none font-medium",
|
|
79
|
-
captionLayout === "label" ? "text-
|
|
79
|
+
captionLayout === "label" ? "text-base" : "rounded-md pl-2 pr-1 flex items-center gap-1 text-base h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
|
|
80
80
|
defaultClassNames.caption_label
|
|
81
81
|
),
|
|
82
82
|
table: "w-full border-collapse",
|
|
@@ -63,7 +63,7 @@ function Calendar({
|
|
|
63
63
|
defaultClassNames.month_caption
|
|
64
64
|
),
|
|
65
65
|
dropdowns: cn(
|
|
66
|
-
"w-full flex items-center text-
|
|
66
|
+
"w-full flex items-center text-base font-medium justify-center h-(--cell-size) gap-1.5",
|
|
67
67
|
defaultClassNames.dropdowns
|
|
68
68
|
),
|
|
69
69
|
dropdown_root: cn(
|
|
@@ -76,7 +76,7 @@ function Calendar({
|
|
|
76
76
|
),
|
|
77
77
|
caption_label: cn(
|
|
78
78
|
"select-none font-medium",
|
|
79
|
-
captionLayout === "label" ? "text-
|
|
79
|
+
captionLayout === "label" ? "text-base" : "rounded-md pl-2 pr-1 flex items-center gap-1 text-base h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
|
|
80
80
|
defaultClassNames.caption_label
|
|
81
81
|
),
|
|
82
82
|
table: "w-full border-collapse",
|
|
@@ -41,7 +41,7 @@ function CardDescription({ className, ...props }) {
|
|
|
41
41
|
"div",
|
|
42
42
|
{
|
|
43
43
|
"data-slot": "card-description",
|
|
44
|
-
className: _utils.cn.call(void 0, "text-muted-foreground text-
|
|
44
|
+
className: _utils.cn.call(void 0, "text-muted-foreground text-base", className),
|
|
45
45
|
...props
|
|
46
46
|
}
|
|
47
47
|
);
|
|
@@ -63,7 +63,8 @@ function Carousel({
|
|
|
63
63
|
api.on("reInit", onSelect);
|
|
64
64
|
api.on("select", onSelect);
|
|
65
65
|
return () => {
|
|
66
|
-
|
|
66
|
+
api.off("reInit", onSelect);
|
|
67
|
+
api.off("select", onSelect);
|
|
67
68
|
};
|
|
68
69
|
}, [api, onSelect]);
|
|
69
70
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -73,7 +74,7 @@ function Carousel({
|
|
|
73
74
|
carouselRef,
|
|
74
75
|
api,
|
|
75
76
|
opts,
|
|
76
|
-
orientation: orientation || (_optionalChain([opts, 'optionalAccess',
|
|
77
|
+
orientation: orientation || (_optionalChain([opts, 'optionalAccess', _5 => _5.axis]) === "y" ? "vertical" : "horizontal"),
|
|
77
78
|
scrollPrev,
|
|
78
79
|
scrollNext,
|
|
79
80
|
canScrollPrev,
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
2
3
|
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
3
4
|
var _recharts = require('recharts'); var RechartsPrimitive = _interopRequireWildcard(_recharts);
|
|
4
5
|
var _utils = require('../../lib/utils');
|
|
5
6
|
const THEMES = { light: "", dark: ".dark" };
|
|
7
|
+
const INITIAL_DIMENSION = { width: 320, height: 200 };
|
|
6
8
|
const ChartContext = React.createContext(null);
|
|
7
9
|
function useChart() {
|
|
8
|
-
const context = React.
|
|
10
|
+
const context = React.useContext(ChartContext);
|
|
9
11
|
if (!context) {
|
|
10
12
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
11
13
|
}
|
|
@@ -16,30 +18,37 @@ function ChartContainer({
|
|
|
16
18
|
className,
|
|
17
19
|
children,
|
|
18
20
|
config,
|
|
21
|
+
initialDimension = INITIAL_DIMENSION,
|
|
19
22
|
...props
|
|
20
23
|
}) {
|
|
21
24
|
const uniqueId = React.useId();
|
|
22
|
-
const chartId = `chart-${id
|
|
25
|
+
const chartId = `chart-${_nullishCoalesce(id, () => ( uniqueId.replace(/:/g, "")))}`;
|
|
23
26
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24
27
|
"div",
|
|
25
28
|
{
|
|
26
29
|
"data-slot": "chart",
|
|
27
30
|
"data-chart": chartId,
|
|
28
31
|
className: _utils.cn.call(void 0,
|
|
29
|
-
"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border
|
|
32
|
+
"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
30
33
|
className
|
|
31
34
|
),
|
|
32
35
|
...props,
|
|
33
36
|
children: [
|
|
34
37
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChartStyle, { id: chartId, config }),
|
|
35
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
39
|
+
RechartsPrimitive.ResponsiveContainer,
|
|
40
|
+
{
|
|
41
|
+
initialDimension,
|
|
42
|
+
children
|
|
43
|
+
}
|
|
44
|
+
)
|
|
36
45
|
]
|
|
37
46
|
}
|
|
38
47
|
) });
|
|
39
48
|
}
|
|
40
49
|
const ChartStyle = ({ id, config }) => {
|
|
41
50
|
const colorConfig = Object.entries(config).filter(
|
|
42
|
-
([, config2]) => config2.theme
|
|
51
|
+
([, config2]) => _nullishCoalesce(config2.theme, () => ( config2.color))
|
|
43
52
|
);
|
|
44
53
|
if (!colorConfig.length) {
|
|
45
54
|
return null;
|
|
@@ -52,7 +61,7 @@ const ChartStyle = ({ id, config }) => {
|
|
|
52
61
|
([theme, prefix]) => `
|
|
53
62
|
${prefix} [data-chart=${id}] {
|
|
54
63
|
${colorConfig.map(([key, itemConfig]) => {
|
|
55
|
-
const color = _optionalChain([itemConfig, 'access', _ => _.theme, 'optionalAccess', _2 => _2[theme]])
|
|
64
|
+
const color = _nullishCoalesce(_optionalChain([itemConfig, 'access', _ => _.theme, 'optionalAccess', _2 => _2[theme]]), () => ( itemConfig.color));
|
|
56
65
|
return color ? ` --color-${key}: ${color};` : null;
|
|
57
66
|
}).join("\n")}
|
|
58
67
|
}
|
|
@@ -84,9 +93,9 @@ function ChartTooltipContent({
|
|
|
84
93
|
return null;
|
|
85
94
|
}
|
|
86
95
|
const [item] = payload;
|
|
87
|
-
const key = `${labelKey
|
|
96
|
+
const key = `${_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(labelKey, () => ( _optionalChain([item, 'optionalAccess', _4 => _4.dataKey]))), () => ( _optionalChain([item, 'optionalAccess', _5 => _5.name]))), () => ( "value"))}`;
|
|
88
97
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
89
|
-
const value = !labelKey && typeof label === "string" ? _optionalChain([config, 'access', _6 => _6[label], 'optionalAccess', _7 => _7.label])
|
|
98
|
+
const value = !labelKey && typeof label === "string" ? _nullishCoalesce(_optionalChain([config, 'access', _6 => _6[label], 'optionalAccess', _7 => _7.label]), () => ( label)) : _optionalChain([itemConfig, 'optionalAccess', _8 => _8.label]);
|
|
90
99
|
if (labelFormatter) {
|
|
91
100
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _utils.cn.call(void 0, "font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
92
101
|
}
|
|
@@ -111,30 +120,30 @@ function ChartTooltipContent({
|
|
|
111
120
|
"div",
|
|
112
121
|
{
|
|
113
122
|
className: _utils.cn.call(void 0,
|
|
114
|
-
"
|
|
123
|
+
"grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
115
124
|
className
|
|
116
125
|
),
|
|
117
126
|
children: [
|
|
118
127
|
!nestLabel ? tooltipLabel : null,
|
|
119
128
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
120
|
-
const key = `${nameKey
|
|
129
|
+
const key = `${_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(nameKey, () => ( item.name)), () => ( item.dataKey)), () => ( "value"))}`;
|
|
121
130
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
122
|
-
const indicatorColor = color
|
|
131
|
+
const indicatorColor = _nullishCoalesce(_nullishCoalesce(color, () => ( _optionalChain([item, 'access', _10 => _10.payload, 'optionalAccess', _11 => _11.fill]))), () => ( item.color));
|
|
123
132
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
124
133
|
"div",
|
|
125
134
|
{
|
|
126
135
|
className: _utils.cn.call(void 0,
|
|
127
|
-
"
|
|
136
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
128
137
|
indicator === "dot" && "items-center"
|
|
129
138
|
),
|
|
130
|
-
children: formatter && _optionalChain([item, 'optionalAccess',
|
|
131
|
-
_optionalChain([itemConfig, 'optionalAccess',
|
|
139
|
+
children: formatter && _optionalChain([item, 'optionalAccess', _12 => _12.value]) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
140
|
+
_optionalChain([itemConfig, 'optionalAccess', _13 => _13.icon]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
132
141
|
"div",
|
|
133
142
|
{
|
|
134
143
|
className: _utils.cn.call(void 0,
|
|
135
144
|
"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
|
|
136
145
|
{
|
|
137
|
-
"
|
|
146
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
138
147
|
"w-1": indicator === "line",
|
|
139
148
|
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
140
149
|
"my-0.5": nestLabel && indicator === "dashed"
|
|
@@ -156,15 +165,15 @@ function ChartTooltipContent({
|
|
|
156
165
|
children: [
|
|
157
166
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-1.5", children: [
|
|
158
167
|
nestLabel ? tooltipLabel : null,
|
|
159
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground", children: _optionalChain([itemConfig, 'optionalAccess',
|
|
168
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground", children: _nullishCoalesce(_optionalChain([itemConfig, 'optionalAccess', _14 => _14.label]), () => ( item.name)) })
|
|
160
169
|
] }),
|
|
161
|
-
item.value && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "
|
|
170
|
+
item.value != null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-mono font-medium text-foreground tabular-nums", children: typeof item.value === "number" ? item.value.toLocaleString() : String(item.value) })
|
|
162
171
|
]
|
|
163
172
|
}
|
|
164
173
|
)
|
|
165
174
|
] })
|
|
166
175
|
},
|
|
167
|
-
|
|
176
|
+
index
|
|
168
177
|
);
|
|
169
178
|
}) })
|
|
170
179
|
]
|
|
@@ -180,7 +189,7 @@ function ChartLegendContent({
|
|
|
180
189
|
nameKey
|
|
181
190
|
}) {
|
|
182
191
|
const { config } = useChart();
|
|
183
|
-
if (!_optionalChain([payload, 'optionalAccess',
|
|
192
|
+
if (!_optionalChain([payload, 'optionalAccess', _15 => _15.length])) {
|
|
184
193
|
return null;
|
|
185
194
|
}
|
|
186
195
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -191,29 +200,29 @@ function ChartLegendContent({
|
|
|
191
200
|
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
192
201
|
className
|
|
193
202
|
),
|
|
194
|
-
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
195
|
-
const key = `${nameKey
|
|
203
|
+
children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
204
|
+
const key = `${_nullishCoalesce(_nullishCoalesce(nameKey, () => ( item.dataKey)), () => ( "value"))}`;
|
|
196
205
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
197
206
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
198
207
|
"div",
|
|
199
208
|
{
|
|
200
209
|
className: _utils.cn.call(void 0,
|
|
201
|
-
"
|
|
210
|
+
"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
|
|
202
211
|
),
|
|
203
212
|
children: [
|
|
204
|
-
_optionalChain([itemConfig, 'optionalAccess',
|
|
213
|
+
_optionalChain([itemConfig, 'optionalAccess', _16 => _16.icon]) && !hideIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, itemConfig.icon, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
205
214
|
"div",
|
|
206
215
|
{
|
|
207
|
-
className: "
|
|
216
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
208
217
|
style: {
|
|
209
218
|
backgroundColor: item.color
|
|
210
219
|
}
|
|
211
220
|
}
|
|
212
221
|
),
|
|
213
|
-
_optionalChain([itemConfig, 'optionalAccess',
|
|
222
|
+
_optionalChain([itemConfig, 'optionalAccess', _17 => _17.label])
|
|
214
223
|
]
|
|
215
224
|
},
|
|
216
|
-
|
|
225
|
+
index
|
|
217
226
|
);
|
|
218
227
|
})
|
|
219
228
|
}
|
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as RechartsPrimitive from 'recharts';
|
|
4
|
+
import { TooltipValueType } from 'recharts';
|
|
4
5
|
|
|
5
6
|
declare const THEMES: {
|
|
6
7
|
readonly light: "";
|
|
7
8
|
readonly dark: ".dark";
|
|
8
9
|
};
|
|
9
|
-
type
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
declare function ChartContainer({ id, className, children, config, ...props }: React.ComponentProps<"div"> & {
|
|
10
|
+
type TooltipNameType = number | string;
|
|
11
|
+
type ChartConfig = Record<string, {
|
|
12
|
+
label?: React.ReactNode;
|
|
13
|
+
icon?: React.ComponentType;
|
|
14
|
+
} & ({
|
|
15
|
+
color?: string;
|
|
16
|
+
theme?: never;
|
|
17
|
+
} | {
|
|
18
|
+
color?: never;
|
|
19
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
20
|
+
})>;
|
|
21
|
+
declare function ChartContainer({ id, className, children, config, initialDimension, ...props }: React.ComponentProps<"div"> & {
|
|
22
22
|
config: ChartConfig;
|
|
23
23
|
children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
24
|
+
initialDimension?: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
24
28
|
}): react_jsx_runtime.JSX.Element;
|
|
25
29
|
declare const ChartStyle: ({ id, config }: {
|
|
26
30
|
id: string;
|
|
@@ -33,11 +37,11 @@ declare function ChartTooltipContent({ active, payload, className, indicator, hi
|
|
|
33
37
|
indicator?: "line" | "dot" | "dashed";
|
|
34
38
|
nameKey?: string;
|
|
35
39
|
labelKey?: string;
|
|
36
|
-
}): react_jsx_runtime.JSX.Element | null;
|
|
37
|
-
declare const ChartLegend:
|
|
38
|
-
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<"div"> &
|
|
40
|
+
} & Omit<RechartsPrimitive.DefaultTooltipContentProps<TooltipValueType, TooltipNameType>, "accessibilityLayer">): react_jsx_runtime.JSX.Element | null;
|
|
41
|
+
declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
|
|
42
|
+
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<"div"> & {
|
|
39
43
|
hideIcon?: boolean;
|
|
40
44
|
nameKey?: string;
|
|
41
|
-
}): react_jsx_runtime.JSX.Element | null;
|
|
45
|
+
} & RechartsPrimitive.DefaultLegendContentProps): react_jsx_runtime.JSX.Element | null;
|
|
42
46
|
|
|
43
47
|
export { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
|
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as RechartsPrimitive from 'recharts';
|
|
4
|
+
import { TooltipValueType } from 'recharts';
|
|
4
5
|
|
|
5
6
|
declare const THEMES: {
|
|
6
7
|
readonly light: "";
|
|
7
8
|
readonly dark: ".dark";
|
|
8
9
|
};
|
|
9
|
-
type
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
declare function ChartContainer({ id, className, children, config, ...props }: React.ComponentProps<"div"> & {
|
|
10
|
+
type TooltipNameType = number | string;
|
|
11
|
+
type ChartConfig = Record<string, {
|
|
12
|
+
label?: React.ReactNode;
|
|
13
|
+
icon?: React.ComponentType;
|
|
14
|
+
} & ({
|
|
15
|
+
color?: string;
|
|
16
|
+
theme?: never;
|
|
17
|
+
} | {
|
|
18
|
+
color?: never;
|
|
19
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
20
|
+
})>;
|
|
21
|
+
declare function ChartContainer({ id, className, children, config, initialDimension, ...props }: React.ComponentProps<"div"> & {
|
|
22
22
|
config: ChartConfig;
|
|
23
23
|
children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
24
|
+
initialDimension?: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
24
28
|
}): react_jsx_runtime.JSX.Element;
|
|
25
29
|
declare const ChartStyle: ({ id, config }: {
|
|
26
30
|
id: string;
|
|
@@ -33,11 +37,11 @@ declare function ChartTooltipContent({ active, payload, className, indicator, hi
|
|
|
33
37
|
indicator?: "line" | "dot" | "dashed";
|
|
34
38
|
nameKey?: string;
|
|
35
39
|
labelKey?: string;
|
|
36
|
-
}): react_jsx_runtime.JSX.Element | null;
|
|
37
|
-
declare const ChartLegend:
|
|
38
|
-
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<"div"> &
|
|
40
|
+
} & Omit<RechartsPrimitive.DefaultTooltipContentProps<TooltipValueType, TooltipNameType>, "accessibilityLayer">): react_jsx_runtime.JSX.Element | null;
|
|
41
|
+
declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
|
|
42
|
+
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<"div"> & {
|
|
39
43
|
hideIcon?: boolean;
|
|
40
44
|
nameKey?: string;
|
|
41
|
-
}): react_jsx_runtime.JSX.Element | null;
|
|
45
|
+
} & RechartsPrimitive.DefaultLegendContentProps): react_jsx_runtime.JSX.Element | null;
|
|
42
46
|
|
|
43
47
|
export { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
import * as RechartsPrimitive from "recharts";
|
|
4
5
|
import { cn } from "../../lib/utils";
|
|
5
6
|
const THEMES = { light: "", dark: ".dark" };
|
|
7
|
+
const INITIAL_DIMENSION = { width: 320, height: 200 };
|
|
6
8
|
const ChartContext = React.createContext(null);
|
|
7
9
|
function useChart() {
|
|
8
|
-
const context = React.
|
|
10
|
+
const context = React.useContext(ChartContext);
|
|
9
11
|
if (!context) {
|
|
10
12
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
11
13
|
}
|
|
@@ -16,30 +18,37 @@ function ChartContainer({
|
|
|
16
18
|
className,
|
|
17
19
|
children,
|
|
18
20
|
config,
|
|
21
|
+
initialDimension = INITIAL_DIMENSION,
|
|
19
22
|
...props
|
|
20
23
|
}) {
|
|
21
24
|
const uniqueId = React.useId();
|
|
22
|
-
const chartId = `chart-${id
|
|
25
|
+
const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
|
|
23
26
|
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
24
27
|
"div",
|
|
25
28
|
{
|
|
26
29
|
"data-slot": "chart",
|
|
27
30
|
"data-chart": chartId,
|
|
28
31
|
className: cn(
|
|
29
|
-
"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border
|
|
32
|
+
"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
30
33
|
className
|
|
31
34
|
),
|
|
32
35
|
...props,
|
|
33
36
|
children: [
|
|
34
37
|
/* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
|
|
35
|
-
/* @__PURE__ */ jsx(
|
|
38
|
+
/* @__PURE__ */ jsx(
|
|
39
|
+
RechartsPrimitive.ResponsiveContainer,
|
|
40
|
+
{
|
|
41
|
+
initialDimension,
|
|
42
|
+
children
|
|
43
|
+
}
|
|
44
|
+
)
|
|
36
45
|
]
|
|
37
46
|
}
|
|
38
47
|
) });
|
|
39
48
|
}
|
|
40
49
|
const ChartStyle = ({ id, config }) => {
|
|
41
50
|
const colorConfig = Object.entries(config).filter(
|
|
42
|
-
([, config2]) => config2.theme
|
|
51
|
+
([, config2]) => config2.theme ?? config2.color
|
|
43
52
|
);
|
|
44
53
|
if (!colorConfig.length) {
|
|
45
54
|
return null;
|
|
@@ -52,7 +61,7 @@ const ChartStyle = ({ id, config }) => {
|
|
|
52
61
|
([theme, prefix]) => `
|
|
53
62
|
${prefix} [data-chart=${id}] {
|
|
54
63
|
${colorConfig.map(([key, itemConfig]) => {
|
|
55
|
-
const color = itemConfig.theme?.[theme]
|
|
64
|
+
const color = itemConfig.theme?.[theme] ?? itemConfig.color;
|
|
56
65
|
return color ? ` --color-${key}: ${color};` : null;
|
|
57
66
|
}).join("\n")}
|
|
58
67
|
}
|
|
@@ -84,9 +93,9 @@ function ChartTooltipContent({
|
|
|
84
93
|
return null;
|
|
85
94
|
}
|
|
86
95
|
const [item] = payload;
|
|
87
|
-
const key = `${labelKey
|
|
96
|
+
const key = `${labelKey ?? item?.dataKey ?? item?.name ?? "value"}`;
|
|
88
97
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
89
|
-
const value = !labelKey && typeof label === "string" ? config[label]?.label
|
|
98
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label ?? label : itemConfig?.label;
|
|
90
99
|
if (labelFormatter) {
|
|
91
100
|
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
92
101
|
}
|
|
@@ -111,20 +120,20 @@ function ChartTooltipContent({
|
|
|
111
120
|
"div",
|
|
112
121
|
{
|
|
113
122
|
className: cn(
|
|
114
|
-
"
|
|
123
|
+
"grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
115
124
|
className
|
|
116
125
|
),
|
|
117
126
|
children: [
|
|
118
127
|
!nestLabel ? tooltipLabel : null,
|
|
119
128
|
/* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
120
|
-
const key = `${nameKey
|
|
129
|
+
const key = `${nameKey ?? item.name ?? item.dataKey ?? "value"}`;
|
|
121
130
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
122
|
-
const indicatorColor = color
|
|
131
|
+
const indicatorColor = color ?? item.payload?.fill ?? item.color;
|
|
123
132
|
return /* @__PURE__ */ jsx(
|
|
124
133
|
"div",
|
|
125
134
|
{
|
|
126
135
|
className: cn(
|
|
127
|
-
"
|
|
136
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
128
137
|
indicator === "dot" && "items-center"
|
|
129
138
|
),
|
|
130
139
|
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -134,7 +143,7 @@ function ChartTooltipContent({
|
|
|
134
143
|
className: cn(
|
|
135
144
|
"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
|
|
136
145
|
{
|
|
137
|
-
"
|
|
146
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
138
147
|
"w-1": indicator === "line",
|
|
139
148
|
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
140
149
|
"my-0.5": nestLabel && indicator === "dashed"
|
|
@@ -156,15 +165,15 @@ function ChartTooltipContent({
|
|
|
156
165
|
children: [
|
|
157
166
|
/* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
|
|
158
167
|
nestLabel ? tooltipLabel : null,
|
|
159
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label
|
|
168
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })
|
|
160
169
|
] }),
|
|
161
|
-
item.value && /* @__PURE__ */ jsx("span", { className: "
|
|
170
|
+
item.value != null && /* @__PURE__ */ jsx("span", { className: "font-mono font-medium text-foreground tabular-nums", children: typeof item.value === "number" ? item.value.toLocaleString() : String(item.value) })
|
|
162
171
|
]
|
|
163
172
|
}
|
|
164
173
|
)
|
|
165
174
|
] })
|
|
166
175
|
},
|
|
167
|
-
|
|
176
|
+
index
|
|
168
177
|
);
|
|
169
178
|
}) })
|
|
170
179
|
]
|
|
@@ -191,20 +200,20 @@ function ChartLegendContent({
|
|
|
191
200
|
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
192
201
|
className
|
|
193
202
|
),
|
|
194
|
-
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
195
|
-
const key = `${nameKey
|
|
203
|
+
children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
204
|
+
const key = `${nameKey ?? item.dataKey ?? "value"}`;
|
|
196
205
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
197
206
|
return /* @__PURE__ */ jsxs(
|
|
198
207
|
"div",
|
|
199
208
|
{
|
|
200
209
|
className: cn(
|
|
201
|
-
"
|
|
210
|
+
"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
|
|
202
211
|
),
|
|
203
212
|
children: [
|
|
204
213
|
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
|
|
205
214
|
"div",
|
|
206
215
|
{
|
|
207
|
-
className: "
|
|
216
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
208
217
|
style: {
|
|
209
218
|
backgroundColor: item.color
|
|
210
219
|
}
|
|
@@ -213,7 +222,7 @@ function ChartLegendContent({
|
|
|
213
222
|
itemConfig?.label
|
|
214
223
|
]
|
|
215
224
|
},
|
|
216
|
-
|
|
225
|
+
index
|
|
217
226
|
);
|
|
218
227
|
})
|
|
219
228
|
}
|
|
@@ -4,6 +4,7 @@ var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
|
4
4
|
var _react2 = require('@base-ui/react');
|
|
5
5
|
var _lucidereact = require('lucide-react');
|
|
6
6
|
var _utils = require('../../lib/utils');
|
|
7
|
+
var _pluginstylescopecontext = require('../../plugin-style-scope-context');
|
|
7
8
|
var _button = require('./button');
|
|
8
9
|
|
|
9
10
|
|
|
@@ -94,7 +95,8 @@ function ComboboxContent({
|
|
|
94
95
|
anchor,
|
|
95
96
|
...props
|
|
96
97
|
}) {
|
|
97
|
-
|
|
98
|
+
const container = _pluginstylescopecontext.usePluginPortalContainer.call(void 0, );
|
|
99
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.Combobox.Portal, { container, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
98
100
|
_react2.Combobox.Positioner,
|
|
99
101
|
{
|
|
100
102
|
side,
|
|
@@ -141,7 +143,7 @@ function ComboboxItem({
|
|
|
141
143
|
{
|
|
142
144
|
"data-slot": "combobox-item",
|
|
143
145
|
className: _utils.cn.call(void 0,
|
|
144
|
-
"data-highlighted:bg-accent data-highlighted:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-
|
|
146
|
+
"data-highlighted:bg-accent data-highlighted:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
145
147
|
className
|
|
146
148
|
),
|
|
147
149
|
...props,
|
|
@@ -178,7 +180,7 @@ function ComboboxLabel({
|
|
|
178
180
|
{
|
|
179
181
|
"data-slot": "combobox-label",
|
|
180
182
|
className: _utils.cn.call(void 0,
|
|
181
|
-
"text-muted-foreground px-2 py-1.5 text-xs pointer-coarse:px-3 pointer-coarse:py-2 pointer-coarse:text-
|
|
183
|
+
"text-muted-foreground px-2 py-1.5 text-xs pointer-coarse:px-3 pointer-coarse:py-2 pointer-coarse:text-base",
|
|
182
184
|
className
|
|
183
185
|
),
|
|
184
186
|
...props
|
|
@@ -194,7 +196,7 @@ function ComboboxEmpty({ className, ...props }) {
|
|
|
194
196
|
{
|
|
195
197
|
"data-slot": "combobox-empty",
|
|
196
198
|
className: _utils.cn.call(void 0,
|
|
197
|
-
"text-muted-foreground hidden w-full justify-center py-2 text-center text-
|
|
199
|
+
"text-muted-foreground hidden w-full justify-center py-2 text-center text-base group-data-empty/combobox-content:flex",
|
|
198
200
|
className
|
|
199
201
|
),
|
|
200
202
|
...props
|
|
@@ -223,7 +225,7 @@ function ComboboxChips({
|
|
|
223
225
|
{
|
|
224
226
|
"data-slot": "combobox-chips",
|
|
225
227
|
className: _utils.cn.call(void 0,
|
|
226
|
-
"dark:bg-input/30 border-input focus-within:border-ring focus-within:ring-ring/50 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive dark:has-aria-invalid:border-destructive/50 flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border bg-transparent bg-clip-padding px-2.5 py-1.5 text-
|
|
228
|
+
"dark:bg-input/30 border-input focus-within:border-ring focus-within:ring-ring/50 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive dark:has-aria-invalid:border-destructive/50 flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border bg-transparent bg-clip-padding px-2.5 py-1.5 text-base shadow-xs transition-[color,box-shadow] focus-within:ring-[3px] has-aria-invalid:ring-[3px] has-data-[slot=combobox-chip]:px-1.5",
|
|
227
229
|
className
|
|
228
230
|
),
|
|
229
231
|
...props
|