@camunda/design-system 0.58.0 → 0.60.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/dist/carbon-compat/accordion-skeleton.d.ts +8 -2
- package/dist/carbon-compat/accordion-skeleton.d.ts.map +1 -1
- package/dist/carbon-compat/accordion-skeleton.js +4 -2
- package/dist/carbon-compat/accordion-skeleton.js.map +1 -1
- package/dist/carbon-compat/c3-data-table.d.ts +7 -1
- package/dist/carbon-compat/c3-data-table.d.ts.map +1 -1
- package/dist/carbon-compat/c3-data-table.js +8 -6
- package/dist/carbon-compat/c3-data-table.js.map +1 -1
- package/dist/carbon-compat/code-snippet.d.ts +2 -2
- package/dist/carbon-compat/code-snippet.d.ts.map +1 -1
- package/dist/carbon-compat/code-snippet.js +8 -6
- package/dist/carbon-compat/code-snippet.js.map +1 -1
- package/dist/carbon-compat/error-boundary.d.ts +2 -1
- package/dist/carbon-compat/error-boundary.d.ts.map +1 -1
- package/dist/carbon-compat/error-boundary.js +11 -1
- package/dist/carbon-compat/error-boundary.js.map +1 -1
- package/dist/carbon-compat/filterable-multi-select.d.ts.map +1 -1
- package/dist/carbon-compat/filterable-multi-select.js +6 -1
- package/dist/carbon-compat/filterable-multi-select.js.map +1 -1
- package/dist/carbon-compat/modal.d.ts.map +1 -1
- package/dist/carbon-compat/modal.js +5 -1
- package/dist/carbon-compat/modal.js.map +1 -1
- package/dist/carbon-compat/multi-select.d.ts.map +1 -1
- package/dist/carbon-compat/multi-select.js +5 -1
- package/dist/carbon-compat/multi-select.js.map +1 -1
- package/dist/carbon-compat/search.d.ts +4 -1
- package/dist/carbon-compat/search.d.ts.map +1 -1
- package/dist/carbon-compat/search.js +4 -2
- package/dist/carbon-compat/search.js.map +1 -1
- package/dist/carbon-compat/table-batch-actions.d.ts +5 -1
- package/dist/carbon-compat/table-batch-actions.d.ts.map +1 -1
- package/dist/carbon-compat/table-batch-actions.js +8 -3
- package/dist/carbon-compat/table-batch-actions.js.map +1 -1
- package/dist/carbon-compat/table-expand.d.ts +5 -1
- package/dist/carbon-compat/table-expand.d.ts.map +1 -1
- package/dist/carbon-compat/table-expand.js +6 -2
- package/dist/carbon-compat/table-expand.js.map +1 -1
- package/dist/carbon-compat/table-select.d.ts +9 -2
- package/dist/carbon-compat/table-select.d.ts.map +1 -1
- package/dist/carbon-compat/table-select.js +5 -2
- package/dist/carbon-compat/table-select.js.map +1 -1
- package/dist/carbon-compat/table-toolbar.d.ts +1 -0
- package/dist/carbon-compat/table-toolbar.d.ts.map +1 -1
- package/dist/carbon-compat/table-toolbar.js +5 -2
- package/dist/carbon-compat/table-toolbar.js.map +1 -1
- package/dist/src/components/ui/alert-dialog.d.ts +11 -1
- package/dist/src/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/src/components/ui/alert-dialog.js +5 -4
- package/dist/src/components/ui/alert-dialog.js.map +1 -1
- package/dist/src/components/ui/alert.d.ts +3 -1
- package/dist/src/components/ui/alert.d.ts.map +1 -1
- package/dist/src/components/ui/alert.js +6 -2
- package/dist/src/components/ui/alert.js.map +1 -1
- package/dist/src/components/ui/app-header.d.ts +1 -0
- package/dist/src/components/ui/app-header.d.ts.map +1 -1
- package/dist/src/components/ui/app-header.js +4 -2
- package/dist/src/components/ui/app-header.js.map +1 -1
- package/dist/src/components/ui/app-sidebar.d.ts +49 -2
- package/dist/src/components/ui/app-sidebar.d.ts.map +1 -1
- package/dist/src/components/ui/app-sidebar.js +74 -22
- package/dist/src/components/ui/app-sidebar.js.map +1 -1
- package/dist/src/components/ui/breadcrumb.d.ts +7 -1
- package/dist/src/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/src/components/ui/breadcrumb.js +6 -3
- package/dist/src/components/ui/breadcrumb.js.map +1 -1
- package/dist/src/components/ui/c4-provider.d.ts +10 -0
- package/dist/src/components/ui/c4-provider.d.ts.map +1 -1
- package/dist/src/components/ui/c4-provider.js +11 -2
- package/dist/src/components/ui/c4-provider.js.map +1 -1
- package/dist/src/components/ui/card.d.ts +3 -1
- package/dist/src/components/ui/card.d.ts.map +1 -1
- package/dist/src/components/ui/card.js +18 -2
- package/dist/src/components/ui/card.js.map +1 -1
- package/dist/src/components/ui/chart.d.ts +1 -0
- package/dist/src/components/ui/chart.d.ts.map +1 -1
- package/dist/src/components/ui/chart.js +4 -2
- package/dist/src/components/ui/chart.js.map +1 -1
- package/dist/src/components/ui/code-block.d.ts +5 -0
- package/dist/src/components/ui/code-block.d.ts.map +1 -1
- package/dist/src/components/ui/code-block.js +15 -20
- package/dist/src/components/ui/code-block.js.map +1 -1
- package/dist/src/components/ui/combobox.d.ts +2 -0
- package/dist/src/components/ui/combobox.d.ts.map +1 -1
- package/dist/src/components/ui/combobox.js +55 -18
- package/dist/src/components/ui/combobox.js.map +1 -1
- package/dist/src/components/ui/data-table.d.ts +63 -6
- package/dist/src/components/ui/data-table.d.ts.map +1 -1
- package/dist/src/components/ui/data-table.js +38 -23
- package/dist/src/components/ui/data-table.js.map +1 -1
- package/dist/src/components/ui/date-picker.d.ts +1 -0
- package/dist/src/components/ui/date-picker.d.ts.map +1 -1
- package/dist/src/components/ui/date-picker.js +6 -2
- package/dist/src/components/ui/date-picker.js.map +1 -1
- package/dist/src/components/ui/date-range-picker.d.ts +3 -0
- package/dist/src/components/ui/date-range-picker.d.ts.map +1 -1
- package/dist/src/components/ui/date-range-picker.js +26 -5
- package/dist/src/components/ui/date-range-picker.js.map +1 -1
- package/dist/src/components/ui/dialog.d.ts +23 -3
- package/dist/src/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/components/ui/dialog.js +15 -9
- package/dist/src/components/ui/dialog.js.map +1 -1
- package/dist/src/components/ui/file-uploader.d.ts +4 -4
- package/dist/src/components/ui/file-uploader.d.ts.map +1 -1
- package/dist/src/components/ui/file-uploader.js +38 -9
- package/dist/src/components/ui/file-uploader.js.map +1 -1
- package/dist/src/components/ui/form-error-summary.d.ts +13 -0
- package/dist/src/components/ui/form-error-summary.d.ts.map +1 -0
- package/dist/src/components/ui/form-error-summary.js +53 -0
- package/dist/src/components/ui/form-error-summary.js.map +1 -0
- package/dist/src/components/ui/inline-edit.d.ts +1 -1
- package/dist/src/components/ui/inline-edit.d.ts.map +1 -1
- package/dist/src/components/ui/inline-edit.js +17 -2
- package/dist/src/components/ui/inline-edit.js.map +1 -1
- package/dist/src/components/ui/meter.d.ts +1 -0
- package/dist/src/components/ui/meter.d.ts.map +1 -1
- package/dist/src/components/ui/meter.js +7 -3
- package/dist/src/components/ui/meter.js.map +1 -1
- package/dist/src/components/ui/multi-select.d.ts +16 -0
- package/dist/src/components/ui/multi-select.d.ts.map +1 -1
- package/dist/src/components/ui/multi-select.js +86 -23
- package/dist/src/components/ui/multi-select.js.map +1 -1
- package/dist/src/components/ui/multi-step-dialog.d.ts +35 -1
- package/dist/src/components/ui/multi-step-dialog.d.ts.map +1 -1
- package/dist/src/components/ui/multi-step-dialog.js +47 -8
- package/dist/src/components/ui/multi-step-dialog.js.map +1 -1
- package/dist/src/components/ui/nav-breadcrumb.d.ts +29 -12
- package/dist/src/components/ui/nav-breadcrumb.d.ts.map +1 -1
- package/dist/src/components/ui/nav-breadcrumb.js +69 -24
- package/dist/src/components/ui/nav-breadcrumb.js.map +1 -1
- package/dist/src/components/ui/notifications.d.ts +52 -5
- package/dist/src/components/ui/notifications.d.ts.map +1 -1
- package/dist/src/components/ui/notifications.js +25 -10
- package/dist/src/components/ui/notifications.js.map +1 -1
- package/dist/src/components/ui/overflow-strip.d.ts +18 -0
- package/dist/src/components/ui/overflow-strip.d.ts.map +1 -0
- package/dist/src/components/ui/overflow-strip.js +103 -0
- package/dist/src/components/ui/overflow-strip.js.map +1 -0
- package/dist/src/components/ui/scorecard.d.ts +1 -0
- package/dist/src/components/ui/scorecard.d.ts.map +1 -1
- package/dist/src/components/ui/scorecard.js +28 -4
- package/dist/src/components/ui/scorecard.js.map +1 -1
- package/dist/src/components/ui/search-input.d.ts +1 -1
- package/dist/src/components/ui/search-input.d.ts.map +1 -1
- package/dist/src/components/ui/search-input.js +4 -2
- package/dist/src/components/ui/search-input.js.map +1 -1
- package/dist/src/components/ui/select.d.ts +2 -2
- package/dist/src/components/ui/select.d.ts.map +1 -1
- package/dist/src/components/ui/select.js +123 -6
- package/dist/src/components/ui/select.js.map +1 -1
- package/dist/src/components/ui/sheet.d.ts +5 -2
- package/dist/src/components/ui/sheet.d.ts.map +1 -1
- package/dist/src/components/ui/sheet.js +4 -2
- package/dist/src/components/ui/sheet.js.map +1 -1
- package/dist/src/components/ui/sidebar-provider.d.ts.map +1 -1
- package/dist/src/components/ui/sidebar-provider.js +5 -1
- package/dist/src/components/ui/sidebar-provider.js.map +1 -1
- package/dist/src/components/ui/split-button.d.ts +1 -0
- package/dist/src/components/ui/split-button.d.ts.map +1 -1
- package/dist/src/components/ui/split-button.js +4 -2
- package/dist/src/components/ui/split-button.js.map +1 -1
- package/dist/src/components/ui/tabs.d.ts +2 -1
- package/dist/src/components/ui/tabs.d.ts.map +1 -1
- package/dist/src/components/ui/tabs.js +16 -4
- package/dist/src/components/ui/tabs.js.map +1 -1
- package/dist/src/components/ui/toast.d.ts +10 -4
- package/dist/src/components/ui/toast.d.ts.map +1 -1
- package/dist/src/components/ui/toast.js +213 -25
- package/dist/src/components/ui/toast.js.map +1 -1
- package/dist/src/components/ui/toggle-group.d.ts +7 -1
- package/dist/src/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/src/components/ui/toggle-group.js +23 -4
- package/dist/src/components/ui/toggle-group.js.map +1 -1
- package/dist/src/components/ui/tree-view.d.ts +10 -2
- package/dist/src/components/ui/tree-view.d.ts.map +1 -1
- package/dist/src/components/ui/tree-view.js +67 -46
- package/dist/src/components/ui/tree-view.js.map +1 -1
- package/dist/src/components/ui/user-menu.d.ts +12 -1
- package/dist/src/components/ui/user-menu.d.ts.map +1 -1
- package/dist/src/components/ui/user-menu.js +5 -3
- package/dist/src/components/ui/user-menu.js.map +1 -1
- package/dist/src/hooks/use-is-truncated.d.ts +9 -5
- package/dist/src/hooks/use-is-truncated.d.ts.map +1 -1
- package/dist/src/hooks/use-is-truncated.js +20 -7
- package/dist/src/hooks/use-is-truncated.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/focus-visible-on-close.d.ts +28 -0
- package/dist/src/lib/focus-visible-on-close.d.ts.map +1 -1
- package/dist/src/lib/focus-visible-on-close.js +54 -1
- package/dist/src/lib/focus-visible-on-close.js.map +1 -1
- package/dist/src/lib/i18n/context.d.ts +48 -0
- package/dist/src/lib/i18n/context.d.ts.map +1 -0
- package/dist/src/lib/i18n/context.js +157 -0
- package/dist/src/lib/i18n/context.js.map +1 -0
- package/dist/src/lib/i18n/dictionary.d.ts +151 -0
- package/dist/src/lib/i18n/dictionary.d.ts.map +1 -0
- package/dist/src/lib/i18n/dictionary.js +134 -0
- package/dist/src/lib/i18n/dictionary.js.map +1 -0
- package/dist/src/lib/merge-refs.d.ts +8 -0
- package/dist/src/lib/merge-refs.d.ts.map +1 -0
- package/dist/src/lib/merge-refs.js +15 -0
- package/dist/src/lib/merge-refs.js.map +1 -0
- package/dist/src/lib/with-ref.d.ts +3 -1
- package/dist/src/lib/with-ref.d.ts.map +1 -1
- package/dist/src/lib/with-ref.js +0 -10
- package/dist/src/lib/with-ref.js.map +1 -1
- package/dist/styles.css +65 -6
- package/package.json +4 -2
|
@@ -3,12 +3,14 @@ import * as React from "react";
|
|
|
3
3
|
import { cva } from "class-variance-authority";
|
|
4
4
|
import { ChevronDown, ChevronRight, ChevronLeft, PanelLeftClose, PanelLeft, X, } from "../../icons/lucide.js";
|
|
5
5
|
import { cn } from "../../lib/utils.js";
|
|
6
|
+
import { useC4Dictionary } from "../../lib/i18n/context.js";
|
|
6
7
|
import { Text } from "./typography.js";
|
|
7
8
|
import { Popover, PopoverContent, PopoverTrigger } from "./popover.js";
|
|
8
9
|
import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
|
|
9
10
|
import { Sheet, SheetClose, SheetContent, SheetTitle } from "./sheet.js";
|
|
10
11
|
import { useSidebar } from "./sidebar-provider.js";
|
|
11
12
|
import { useIsMobile } from "../../hooks/use-is-mobile.js";
|
|
13
|
+
import { useIsTruncated } from "../../hooks/use-is-truncated.js";
|
|
12
14
|
import { linkDestination, resolveActive, resolveLinkProps, } from "./nav-data.js";
|
|
13
15
|
import { NavRowIcon } from "./nav-icon.js";
|
|
14
16
|
const NAV_ROW_BASE = "group/navbtn flex w-full items-center overflow-hidden rounded-md transition-colors";
|
|
@@ -57,18 +59,28 @@ function NavItemRow({ node, expanded, depth, LinkEl, isMobile, onNavigate, hasLi
|
|
|
57
59
|
const isLink = linkDestination(node.linkProps) !== undefined;
|
|
58
60
|
const Comp = isLink ? LinkEl : "button";
|
|
59
61
|
const isActive = resolveActive(node.isActive, node.key, activeItemKey);
|
|
62
|
+
// Truncation reveal — expanded state only. The collapsed icon rail below
|
|
63
|
+
// has its own, separate tooltip (naming the icon), so this hook's state is
|
|
64
|
+
// simply unused on that path rather than conditionally called.
|
|
65
|
+
const { ref: labelRef, isTruncated, measure, } = useIsTruncated();
|
|
66
|
+
React.useLayoutEffect(() => {
|
|
67
|
+
measure();
|
|
68
|
+
});
|
|
60
69
|
const row = (_jsxs(Comp, { ...(isLink
|
|
61
70
|
? resolveLinkProps(node.linkProps, hasLinkComponent)
|
|
62
71
|
: { type: "button" }), "data-slot": "app-sidebar-item", className: cn(navButton({ active: isActive, expanded })), style: indentStyle(depth), "aria-current": isActive ? "page" : undefined, onClick: () => {
|
|
63
72
|
node.onClick?.();
|
|
64
73
|
onNavigate?.();
|
|
65
|
-
}, children: [_jsx(NavRowIcon, { icon: node.icon, label: node.label }), _jsx("span", { className: cn("flex-1 truncate", !expanded && "sr-only"), children: node.label }), expanded && node.trailingElement] }));
|
|
74
|
+
}, onPointerEnter: measure, onFocus: measure, children: [_jsx(NavRowIcon, { icon: node.icon, label: node.label }), _jsx("span", { ref: labelRef, className: cn("flex-1 truncate", !expanded && "sr-only"), children: node.label }), expanded && node.trailingElement] }));
|
|
66
75
|
// Collapsed icon rail: name the icon with a tooltip. Not on mobile (the Sheet
|
|
67
76
|
// shows full labels) and not when expanded (the label is already visible).
|
|
68
77
|
if (!expanded && !isMobile) {
|
|
69
78
|
return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: row }), _jsx(TooltipContent, { side: "right", children: node.label })] }));
|
|
70
79
|
}
|
|
71
|
-
|
|
80
|
+
// Expanded state: the label is visible and can itself clip — reveal the
|
|
81
|
+
// full text on hover/focus, mounted only when it actually does. See
|
|
82
|
+
// "Truncated Text" in `docs/specs/shadcn/patterns.md`.
|
|
83
|
+
return isTruncated ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: row }), _jsx(TooltipContent, { children: node.label })] })) : (row);
|
|
72
84
|
}
|
|
73
85
|
function NavGroupRow({ node, expanded, depth, LinkEl, hasLinkComponent, activeItemKey, isMobile, onNavigate, }) {
|
|
74
86
|
const isGroupControlled = node.isExpanded !== undefined;
|
|
@@ -90,7 +102,13 @@ function NavGroupRow({ node, expanded, depth, LinkEl, hasLinkComponent, activeIt
|
|
|
90
102
|
: false;
|
|
91
103
|
const isLink = isGroupItem && linkDestination(node.linkProps) !== undefined;
|
|
92
104
|
const LabelComp = isLink ? LinkEl : "button";
|
|
93
|
-
|
|
105
|
+
// Truncation reveal — expanded state only (see the collapsed-rail flyout's
|
|
106
|
+
// own, separate tooltip below, which already names the icon-only trigger).
|
|
107
|
+
const { ref: labelRef, isTruncated, measure, } = useIsTruncated();
|
|
108
|
+
React.useLayoutEffect(() => {
|
|
109
|
+
measure();
|
|
110
|
+
});
|
|
111
|
+
const label = (_jsxs(_Fragment, { children: [_jsx(NavRowIcon, { icon: node.icon, label: node.label }), _jsx("span", { ref: labelRef, className: cn("flex-1 truncate", !expanded && "sr-only"), children: node.label }), expanded && node.trailingElement] }));
|
|
94
112
|
if (!expanded) {
|
|
95
113
|
return (_jsxs(Popover, { open: flyoutOpen, onOpenChange: setFlyoutOpen, children: [_jsxs(Tooltip, { open: flyoutOpen ? false : undefined, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { type: "button", "data-slot": "app-sidebar-group-trigger", "aria-label": node.label, "aria-expanded": flyoutOpen, className: cn(navButton({ active: isActive, expanded: false })), children: [_jsx(NavRowIcon, { icon: node.icon, label: node.label }), _jsx("span", { className: "sr-only", children: node.label })] }) }) }), _jsx(TooltipContent, { side: "right", children: node.label })] }), _jsx(PopoverContent, { side: "right", align: "start", className: "w-56 gap-0 p-1", children: node.children.map((child) => renderNode(child, {
|
|
96
114
|
expanded: true,
|
|
@@ -102,18 +120,22 @@ function NavGroupRow({ node, expanded, depth, LinkEl, hasLinkComponent, activeIt
|
|
|
102
120
|
onNavigate,
|
|
103
121
|
})) })] }));
|
|
104
122
|
}
|
|
123
|
+
const labelElement = (_jsx(LabelComp, { ...(isLink ? node.linkProps : { type: "button" }), className: cn("flex flex-1 min-w-0 items-center gap-3 min-h-10 py-2 text-sm text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", isActive
|
|
124
|
+
? "text-neutral-foreground-strong font-medium"
|
|
125
|
+
: "text-neutral-foreground-subtle hover:text-neutral-foreground-strong"), style: depth > 0
|
|
126
|
+
? { paddingLeft: `${0.75 + depth * 1.75}rem` }
|
|
127
|
+
: { paddingLeft: "0.75rem" }, "aria-current": isActive ? "page" : undefined, "aria-expanded": isGroupItem ? undefined : open, onClick: isGroupItem
|
|
128
|
+
? () => {
|
|
129
|
+
node.onClick?.();
|
|
130
|
+
onNavigate?.();
|
|
131
|
+
}
|
|
132
|
+
: toggle, onPointerEnter: measure, onFocus: measure, children: label }));
|
|
133
|
+
// Truncation reveal, mounted only when the label actually clips — see
|
|
134
|
+
// "Truncated Text" in `docs/specs/shadcn/patterns.md`.
|
|
135
|
+
const labelWithReveal = isTruncated ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: labelElement }), _jsx(TooltipContent, { children: node.label })] })) : (labelElement);
|
|
105
136
|
return (_jsxs("div", { "data-slot": "app-sidebar-group", className: cn("flex flex-col gap-0.5"), children: [_jsxs("div", { className: cn(NAV_ROW_BASE, isActive
|
|
106
137
|
? "bg-neutral-background-strong"
|
|
107
|
-
: "hover:bg-neutral-background-medium"), children: [_jsx(
|
|
108
|
-
? "text-neutral-foreground-strong font-medium"
|
|
109
|
-
: "text-neutral-foreground-subtle hover:text-neutral-foreground-strong"), style: depth > 0
|
|
110
|
-
? { paddingLeft: `${0.75 + depth * 1.75}rem` }
|
|
111
|
-
: { paddingLeft: "0.75rem" }, "aria-current": isActive ? "page" : undefined, "aria-expanded": isGroupItem ? undefined : open, onClick: isGroupItem
|
|
112
|
-
? () => {
|
|
113
|
-
node.onClick?.();
|
|
114
|
-
onNavigate?.();
|
|
115
|
-
}
|
|
116
|
-
: toggle, children: label }), _jsx("button", { type: "button", "data-slot": "app-sidebar-group-toggle", "aria-label": `Toggle ${node.label}`, "aria-expanded": open, onClick: toggle, className: "flex items-center justify-center mr-3 ml-1 rounded p-0.5 text-neutral-foreground-subtle hover:bg-neutral-background-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", children: open ? (_jsx(ChevronDown, { "aria-hidden": true, className: "size-4" })) : (_jsx(ChevronRight, { "aria-hidden": true, className: "size-4" })) })] }), open &&
|
|
138
|
+
: "hover:bg-neutral-background-medium"), children: [labelWithReveal, _jsx("button", { type: "button", "data-slot": "app-sidebar-group-toggle", "aria-label": `Toggle ${node.label}`, "aria-expanded": open, onClick: toggle, className: "flex items-center justify-center mr-3 ml-1 rounded p-0.5 text-neutral-foreground-subtle hover:bg-neutral-background-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", children: open ? (_jsx(ChevronDown, { "aria-hidden": true, className: "size-4" })) : (_jsx(ChevronRight, { "aria-hidden": true, className: "size-4" })) })] }), open &&
|
|
117
139
|
node.children.map((child) => renderNode(child, {
|
|
118
140
|
expanded,
|
|
119
141
|
depth: depth + 1,
|
|
@@ -136,15 +158,30 @@ function NavSection({ node, expanded, depth, LinkEl, hasLinkComponent, activeIte
|
|
|
136
158
|
}))] }));
|
|
137
159
|
}
|
|
138
160
|
function BackNavHeader({ backNav, expanded, LinkEl, }) {
|
|
139
|
-
const {
|
|
161
|
+
const { t } = useC4Dictionary();
|
|
162
|
+
const { title, onBack, backHref, backLabel } = backNav;
|
|
163
|
+
const resolvedBackLabel = backLabel ?? t("appSidebar.back");
|
|
140
164
|
const isLink = backHref !== undefined;
|
|
141
165
|
const BackComp = isLink ? LinkEl : "button";
|
|
142
|
-
|
|
166
|
+
// No focusable ancestor wraps this title (the back button is a sibling,
|
|
167
|
+
// not a parent) — per the "Truncated Text" decision tree in
|
|
168
|
+
// docs/specs/shadcn/patterns.md, `tabIndex={0}` goes directly on the `Text`
|
|
169
|
+
// span itself. `Text`'s ref type is `React.Ref<HTMLElement>` (it's
|
|
170
|
+
// polymorphic via `as`), so the hook is typed `<HTMLElement>` here rather
|
|
171
|
+
// than `<HTMLSpanElement>` even though `as="span"` below.
|
|
172
|
+
const { ref: titleRef, isTruncated: titleTruncated, measure: measureTitle, } = useIsTruncated();
|
|
173
|
+
React.useLayoutEffect(() => {
|
|
174
|
+
measureTitle();
|
|
175
|
+
});
|
|
176
|
+
const titleSpan = expanded ? (_jsx(Text, { ref: titleRef, as: "span", variant: "label-md-strong", tabIndex: 0, onPointerEnter: measureTitle, onFocus: measureTitle, className: "flex-1 truncate rounded-sm pr-7 text-center text-neutral-foreground-strong outline-none focus-visible:ring-2 focus-visible:ring-ring", children: title })) : null;
|
|
177
|
+
const titleElement = expanded && titleTruncated ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: titleSpan }), _jsx(TooltipContent, { children: title })] })) : (titleSpan);
|
|
178
|
+
return (_jsxs("div", { "data-slot": "app-sidebar-back-nav", className: cn("flex h-10 shrink-0 items-center gap-1 border-b border-border", expanded ? "pl-1 pr-3" : "justify-center px-2"), children: [_jsx(BackComp, { ...(isLink ? { href: backHref } : { type: "button", onClick: onBack }), "data-slot": "app-sidebar-back", "aria-label": resolvedBackLabel, className: "flex size-8 shrink-0 items-center justify-center rounded-md text-neutral-foreground-subtle transition-colors hover:bg-neutral-background-strong hover:text-neutral-foreground-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", children: _jsx(ChevronLeft, { "aria-hidden": true, className: "size-4" }) }), titleElement] }));
|
|
143
179
|
}
|
|
144
180
|
function remToPx(rem) {
|
|
145
181
|
return parseFloat(rem) * 16;
|
|
146
182
|
}
|
|
147
|
-
function SidebarResizeHandle({ width, minWidth, maxWidth, onResize, }) {
|
|
183
|
+
function SidebarResizeHandle({ width, minWidth, maxWidth, onResize, resizeLabel, resizeValueTextLabel, }) {
|
|
184
|
+
const { t } = useC4Dictionary();
|
|
148
185
|
const minPx = remToPx(minWidth);
|
|
149
186
|
const maxPx = remToPx(maxWidth);
|
|
150
187
|
const nowPx = Math.round(remToPx(width));
|
|
@@ -175,12 +212,14 @@ function SidebarResizeHandle({ width, minWidth, maxWidth, onResize, }) {
|
|
|
175
212
|
return;
|
|
176
213
|
e.preventDefault();
|
|
177
214
|
};
|
|
178
|
-
return (_jsx("div", { "data-slot": "app-sidebar-resize-handle", role: "separator", "aria-orientation": "vertical", "aria-label":
|
|
215
|
+
return (_jsx("div", { "data-slot": "app-sidebar-resize-handle", role: "separator", "aria-orientation": "vertical", "aria-label": resizeLabel ?? t("appSidebar.resize"), "aria-valuemin": Math.round(minPx), "aria-valuemax": Math.round(maxPx), "aria-valuenow": nowPx, "aria-valuetext": resizeValueTextLabel ??
|
|
216
|
+
t("appSidebar.resizeValueText", { pixels: nowPx }), tabIndex: 0, onPointerDown: onPointerDown, onKeyDown: onKeyDown, className: "absolute top-0 right-0 z-50 h-full w-1 cursor-col-resize select-none hover:bg-neutral-background-medium focus-visible:bg-ring focus-visible:outline-none" }));
|
|
179
217
|
}
|
|
180
|
-
export function AppSidebar({ ariaLabel, items, backNav, expandedWidth = "16rem", collapsedWidth = "3.5rem", resizable = true, minWidth = "14rem", maxWidth = "24rem", footer, linkComponent, activeItemKey, className, ...expandProps }) {
|
|
218
|
+
export function AppSidebar({ ariaLabel, items, backNav, expandedWidth = "16rem", collapsedWidth = "3.5rem", expandLabel, collapseLabel, collapseText, resizable = true, minWidth = "14rem", maxWidth = "24rem", resizeLabel, resizeValueTextLabel, footer, linkComponent, closeNavigationLabel, activeItemKey, className, ...expandProps }) {
|
|
181
219
|
const ctx = useSidebar();
|
|
182
220
|
const standaloneIsMobile = useIsMobile();
|
|
183
221
|
const hasWarnedNoProvider = React.useRef(false);
|
|
222
|
+
const { t } = useC4Dictionary();
|
|
184
223
|
// Runs in an effect, not at render time: ref reads/writes aren't safe
|
|
185
224
|
// during render under concurrent rendering. Fires only when there's no
|
|
186
225
|
// SidebarProvider AND the viewport is genuinely mobile-sized — silent at
|
|
@@ -216,9 +255,17 @@ export function AppSidebar({ ariaLabel, items, backNav, expandedWidth = "16rem",
|
|
|
216
255
|
const LinkEl = linkComponent ?? "a";
|
|
217
256
|
const hasLinkComponent = linkComponent !== undefined;
|
|
218
257
|
const toggleRef = React.useRef(null);
|
|
258
|
+
// Truncation reveal for the collapse-toggle's own label — declared above
|
|
259
|
+
// the mobile early return below (hooks can't follow a conditional return).
|
|
260
|
+
// Only relevant once `expanded` (the collapsed state hides the label via
|
|
261
|
+
// `sr-only`, and already gets its own, separate expand-action tooltip).
|
|
262
|
+
const { ref: collapseTextRef, isTruncated: collapseTextTruncated, measure: measureCollapseText, } = useIsTruncated();
|
|
263
|
+
React.useLayoutEffect(() => {
|
|
264
|
+
measureCollapseText();
|
|
265
|
+
});
|
|
219
266
|
// Mobile: render the nav inside a left Sheet overlay (always full labels).
|
|
220
267
|
if (isMobile) {
|
|
221
|
-
return (_jsx(Sheet, { open: ctx?.mobileOpen ?? false, onOpenChange: (o) => ctx?.setMobileOpen(o), children: _jsxs(SheetContent, { side: "left", showCloseButton: false, className: "w-72 p-0", children: [_jsx(SheetTitle, { className: "sr-only", children: ariaLabel }), _jsxs("nav", { "data-slot": "app-sidebar", "aria-label": ariaLabel, className: "flex h-full flex-col bg-background", children: [_jsx("div", { className: "flex h-12 shrink-0 items-center justify-end px-2", children: _jsx(SheetClose, { asChild: true, children: _jsx("button", { type: "button", "aria-label":
|
|
268
|
+
return (_jsx(Sheet, { open: ctx?.mobileOpen ?? false, onOpenChange: (o) => ctx?.setMobileOpen(o), children: _jsxs(SheetContent, { side: "left", showCloseButton: false, className: "w-72 p-0", children: [_jsx(SheetTitle, { className: "sr-only", children: ariaLabel }), _jsxs("nav", { "data-slot": "app-sidebar", "aria-label": ariaLabel, className: "flex h-full flex-col bg-background", children: [_jsx("div", { className: "flex h-12 shrink-0 items-center justify-end px-2", children: _jsx(SheetClose, { asChild: true, children: _jsx("button", { type: "button", "aria-label": closeNavigationLabel ?? t("appSidebar.closeNavigation"), className: "flex size-8 items-center justify-center rounded-md text-neutral-foreground-subtle transition-colors hover:bg-neutral-background-strong hover:text-neutral-foreground-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", children: _jsx(X, { "aria-hidden": true, className: "size-4" }) }) }) }), backNav && (_jsx(BackNavHeader, { backNav: backNav, expanded: true, LinkEl: LinkEl })), _jsx("div", { className: cn("flex flex-1 flex-col gap-0.5 overflow-y-auto px-2 py-2", HIDDEN_SCROLLBAR), children: items.map((node) => renderNode(node, {
|
|
222
269
|
expanded: true,
|
|
223
270
|
depth: 0,
|
|
224
271
|
LinkEl,
|
|
@@ -231,10 +278,15 @@ export function AppSidebar({ ariaLabel, items, backNav, expandedWidth = "16rem",
|
|
|
231
278
|
}
|
|
232
279
|
// Desktop: the fixed rail.
|
|
233
280
|
const width = expanded ? resizedWidth : collapsedWidth;
|
|
234
|
-
|
|
281
|
+
// Shared with the tooltip below so the accessible name (aria-label) and the
|
|
282
|
+
// visible tooltip text never drift apart under a dictionary override.
|
|
283
|
+
const resolvedExpandLabel = expandLabel ?? t("appSidebar.expand");
|
|
284
|
+
const resolvedCollapseLabel = collapseLabel ?? t("appSidebar.collapse");
|
|
285
|
+
const resolvedCollapseText = collapseText ?? t("appSidebar.collapseText");
|
|
286
|
+
const collapseToggle = (_jsxs("button", { ref: toggleRef, type: "button", "aria-label": expanded ? resolvedCollapseLabel : resolvedExpandLabel, "aria-expanded": expanded, onClick: () => {
|
|
235
287
|
setExpanded(!expanded);
|
|
236
288
|
toggleRef.current?.focus();
|
|
237
|
-
}, className: cn("flex min-h-10 items-center py-2 text-sm text-neutral-foreground-subtle hover:bg-neutral-background-strong hover:text-neutral-foreground-strong border-t border-border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", expanded ? "gap-3 px-3" : "justify-center px-2"), children: [expanded ? (_jsx(PanelLeftClose, { "aria-hidden": true, className: "size-4 shrink-0" })) : (_jsx(PanelLeft, { "aria-hidden": true, className: "size-4 shrink-0" })), _jsx("span", { className: cn(expanded ? "flex-1 truncate text-left" : "sr-only"), children:
|
|
289
|
+
}, onPointerEnter: measureCollapseText, onFocus: measureCollapseText, className: cn("flex min-h-10 items-center py-2 text-sm text-neutral-foreground-subtle hover:bg-neutral-background-strong hover:text-neutral-foreground-strong border-t border-border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", expanded ? "gap-3 px-3" : "justify-center px-2"), children: [expanded ? (_jsx(PanelLeftClose, { "aria-hidden": true, className: "size-4 shrink-0" })) : (_jsx(PanelLeft, { "aria-hidden": true, className: "size-4 shrink-0" })), _jsx("span", { ref: collapseTextRef, className: cn(expanded ? "flex-1 truncate text-left" : "sr-only"), children: resolvedCollapseText })] }));
|
|
238
290
|
return (_jsxs("nav", { "data-slot": "app-sidebar", "aria-label": ariaLabel, style: { width, ["--app-sidebar-width"]: width }, className: cn("fixed left-0 top-12 bottom-0 z-40 flex flex-col bg-background border-r border-border transition-[width] duration-150 ease-out", className), children: [backNav && (_jsx(BackNavHeader, { backNav: backNav, expanded: expanded, LinkEl: LinkEl })), _jsx("div", { className: cn("flex-1 min-h-0 flex flex-col gap-0.5 px-2 py-2 overflow-y-auto overflow-x-hidden", HIDDEN_SCROLLBAR), children: items.map((node) => renderNode(node, {
|
|
239
291
|
expanded,
|
|
240
292
|
depth: 0,
|
|
@@ -242,6 +294,6 @@ export function AppSidebar({ ariaLabel, items, backNav, expandedWidth = "16rem",
|
|
|
242
294
|
hasLinkComponent,
|
|
243
295
|
activeItemKey,
|
|
244
296
|
isMobile: false,
|
|
245
|
-
})) }), footer && _jsx("div", { className: "border-t border-border p-2", children: footer }), expanded ? (collapseToggle) : (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: collapseToggle }), _jsx(TooltipContent, { side: "right", children:
|
|
297
|
+
})) }), footer && _jsx("div", { className: "border-t border-border p-2", children: footer }), expanded ? (collapseTextTruncated ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: collapseToggle }), _jsx(TooltipContent, { children: resolvedCollapseText })] })) : (collapseToggle)) : (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: collapseToggle }), _jsx(TooltipContent, { side: "right", children: resolvedExpandLabel })] })), resizable && expanded && (_jsx(SidebarResizeHandle, { width: resizedWidth, minWidth: minWidth, maxWidth: maxWidth, onResize: setResizedWidth, resizeLabel: resizeLabel, resizeValueTextLabel: resizeValueTextLabel }))] }));
|
|
246
298
|
}
|
|
247
299
|
//# sourceMappingURL=app-sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar.js","sourceRoot":"","sources":["../../../../src/components/ui/app-sidebar.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-sidebar.js","sourceRoot":"","sources":["../../../../src/components/ui/app-sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,12 @@ declare function BreadcrumbLink({ asChild, className, ...props }: React.Componen
|
|
|
7
7
|
}): React.JSX.Element;
|
|
8
8
|
declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
9
9
|
declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
|
|
10
|
-
declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">
|
|
10
|
+
declare function BreadcrumbEllipsis({ className, label, ...props }: React.ComponentProps<"span"> & {
|
|
11
|
+
/**
|
|
12
|
+
* Sr-only text alongside the ellipsis glyph. Sourced from the i18n
|
|
13
|
+
* dictionary at key `"breadcrumb.more"` when omitted.
|
|
14
|
+
*/
|
|
15
|
+
label?: string;
|
|
16
|
+
}): React.JSX.Element;
|
|
11
17
|
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, };
|
|
12
18
|
//# sourceMappingURL=breadcrumb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/breadcrumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/breadcrumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,iBAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAK5D;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAe1E;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQ1E;AAED,iBAAS,cAAc,CAAC,EACtB,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,qBAYnD;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAS5E;AAED,iBAAS,mBAAmB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAgB5B;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,qBAcA;AAED,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,GACpB,CAAC"}
|
|
@@ -4,9 +4,11 @@ import * as React from "react";
|
|
|
4
4
|
import { Slot } from "radix-ui";
|
|
5
5
|
import { MoreHorizontal } from "../../icons/lucide.js";
|
|
6
6
|
import { cn } from "../../lib/utils.js";
|
|
7
|
+
import { useC4Dictionary } from "../../lib/i18n/context.js";
|
|
7
8
|
import { typographyVariants } from "./typography.js";
|
|
8
9
|
function Breadcrumb({ ...props }) {
|
|
9
|
-
|
|
10
|
+
const { t } = useC4Dictionary();
|
|
11
|
+
return (_jsx("nav", { "data-slot": "breadcrumb", "aria-label": t("breadcrumb.nav"), ...props }));
|
|
10
12
|
}
|
|
11
13
|
function BreadcrumbList({ className, ...props }) {
|
|
12
14
|
return (_jsx("ol", { "data-slot": "breadcrumb-list",
|
|
@@ -28,8 +30,9 @@ function BreadcrumbPage({ className, ...props }) {
|
|
|
28
30
|
function BreadcrumbSeparator({ children, className, ...props }) {
|
|
29
31
|
return (_jsx("li", { "data-slot": "breadcrumb-separator", role: "presentation", "aria-hidden": "true", className: cn("select-none text-xs text-neutral-border-strong", children != null && "[&>svg]:size-3.5", className), ...props, children: children ?? "/" }));
|
|
30
32
|
}
|
|
31
|
-
function BreadcrumbEllipsis({ className, ...props }) {
|
|
32
|
-
|
|
33
|
+
function BreadcrumbEllipsis({ className, label, ...props }) {
|
|
34
|
+
const { t } = useC4Dictionary();
|
|
35
|
+
return (_jsxs("span", { "data-slot": "breadcrumb-ellipsis", role: "presentation", "aria-hidden": "true", className: cn("flex size-9 items-center justify-center", className), ...props, children: [_jsx(MoreHorizontal, { className: "size-4" }), _jsx("span", { className: "sr-only", children: label ?? t("breadcrumb.more") })] }));
|
|
33
36
|
}
|
|
34
37
|
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, };
|
|
35
38
|
//# sourceMappingURL=breadcrumb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../../../src/components/ui/breadcrumb.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../../../src/components/ui/breadcrumb.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,SAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAA+B;IAC3D,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAChC,OAAO,CACL,2BAAe,YAAY,gBAAa,CAAC,CAAC,gBAAgB,CAAC,KAAM,KAAK,GAAI,CAC3E,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACzE,OAAO,CACL,0BACY,iBAAiB;QAC3B,oEAAoE;QACpE,qEAAqE;QACrE,4CAA4C;QAC5C,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,kBAAkB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAC9C,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACzE,OAAO,CACL,0BACY,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,KACxD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EAC0C;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,OAAO,CACL,KAAC,IAAI,iBACO,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CACX,4PAA4P,EAC5P,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC;IAC3E,OAAO,CACL,4BACY,iBAAiB,kBACd,MAAM,EACnB,SAAS,EAAE,EAAE,CAAC,4CAA4C,EAAE,SAAS,CAAC,KAClE,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACmB;IAC3B,OAAO,CACL,0BACY,sBAAsB,EAChC,IAAI,EAAC,cAAc,iBACP,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,QAAQ,IAAI,IAAI,IAAI,kBAAkB,EACtC,SAAS,CACV,KACG,KAAK,YAER,QAAQ,IAAI,GAAG,GACb,CACN,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EAOT;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAChC,OAAO,CACL,6BACY,qBAAqB,EAC/B,IAAI,EAAC,cAAc,iBACP,MAAM,EAClB,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAC/D,KAAK,aAET,KAAC,cAAc,IAAC,SAAS,EAAC,QAAQ,GAAG,EACrC,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAQ,IAC3D,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,GACpB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import type { C4Dictionary } from "../../lib/i18n/dictionary.js";
|
|
2
3
|
/**
|
|
3
4
|
* Scopes all c4-components CSS (design tokens, base resets) to its subtree.
|
|
4
5
|
* Wrap your shadcn component tree with this to avoid polluting the host app's styles.
|
|
@@ -13,6 +14,15 @@ type C4ProviderProps = {
|
|
|
13
14
|
children: React.ReactNode;
|
|
14
15
|
ref?: React.Ref<HTMLDivElement>;
|
|
15
16
|
theme?: "light" | "dark";
|
|
17
|
+
dictionary?: Partial<C4Dictionary>;
|
|
18
|
+
/**
|
|
19
|
+
* BCP-47 language tag (e.g. `"en"`, `"en-US"`, `"de-DE"`) — not
|
|
20
|
+
* underscore-separated (`"en_US"` is not valid BCP-47, even though it's
|
|
21
|
+
* the default format several backend i18n frameworks emit). A malformed
|
|
22
|
+
* value falls back to `"en"` (with a dev-only console warning) rather
|
|
23
|
+
* than throwing.
|
|
24
|
+
*/
|
|
25
|
+
locale?: string;
|
|
16
26
|
};
|
|
17
27
|
declare const C4Provider: React.ForwardRefExoticComponent<Omit<C4ProviderProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
18
28
|
export { C4Provider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c4-provider.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/c4-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"c4-provider.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/c4-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAuBxD;;;;;;;;;GASG;AACH,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAiGF,QAAA,MAAM,UAAU,qGAA2D,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { withRef } from "../../lib/with-ref.js";
|
|
4
4
|
import { installAriaHiddenInert } from "../../lib/inert-aria-hidden.js";
|
|
5
|
+
import { C4DictionaryContext, resolveDictionary, resolveLocale, } from "../../lib/i18n/context.js";
|
|
5
6
|
/**
|
|
6
7
|
* Propagates light/dark from the app-root C4Provider to nested instances
|
|
7
8
|
* (Dialog, DropdownMenu, Select, etc.) that portal to document.body.
|
|
@@ -24,7 +25,15 @@ function resolveRootDark() {
|
|
|
24
25
|
return true;
|
|
25
26
|
return false;
|
|
26
27
|
}
|
|
27
|
-
function C4ProviderImpl({ ref, children, theme }) {
|
|
28
|
+
function C4ProviderImpl({ ref, children, theme, dictionary, locale, }) {
|
|
29
|
+
const inheritedDictionaryCtx = React.useContext(C4DictionaryContext);
|
|
30
|
+
const resolvedDictionary = React.useMemo(() => resolveDictionary(inheritedDictionaryCtx?.dictionary, dictionary), [inheritedDictionaryCtx?.dictionary, dictionary]);
|
|
31
|
+
const resolvedLocale = React.useMemo(() => resolveLocale(inheritedDictionaryCtx?.locale, locale), [inheritedDictionaryCtx?.locale, locale]);
|
|
32
|
+
// resolvedDictionary/resolvedLocale are already memoized above; without
|
|
33
|
+
// this, raw `useContext(C4DictionaryContext)` consumers still got a new
|
|
34
|
+
// object identity on every render because the `{ dictionary, locale }`
|
|
35
|
+
// literal itself was reconstructed each time.
|
|
36
|
+
const dictionaryContextValue = React.useMemo(() => ({ dictionary: resolvedDictionary, locale: resolvedLocale }), [resolvedDictionary, resolvedLocale]);
|
|
28
37
|
const inheritedDark = React.useContext(C4ThemeContext);
|
|
29
38
|
const isRoot = inheritedDark === undefined;
|
|
30
39
|
const containerRef = React.useRef(null);
|
|
@@ -76,7 +85,7 @@ function C4ProviderImpl({ ref, children, theme }) {
|
|
|
76
85
|
ref.current = node;
|
|
77
86
|
}, [ref]);
|
|
78
87
|
const scope = (_jsx("div", { ref: setRef, className: isDark ? "c4-ui contents dark" : "c4-ui contents", "data-c4-scope": "", children: children }));
|
|
79
|
-
return (_jsx(C4ThemeContext.Provider, { value: isDark, children: isDark && !isRoot ? _jsx("div", { className: "dark", children: scope }) : scope }));
|
|
88
|
+
return (_jsx(C4DictionaryContext.Provider, { value: dictionaryContextValue, children: _jsx(C4ThemeContext.Provider, { value: isDark, children: isDark && !isRoot ? _jsx("div", { className: "dark", children: scope }) : scope }) }));
|
|
80
89
|
}
|
|
81
90
|
const C4Provider = withRef(C4ProviderImpl);
|
|
82
91
|
export { C4Provider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c4-provider.js","sourceRoot":"","sources":["../../../../src/components/ui/c4-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"c4-provider.js","sourceRoot":"","sources":["../../../../src/components/ui/c4-provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,10 @@ declare function Card({ className, size, ...props }: React.ComponentProps<"div">
|
|
|
3
3
|
size?: "default" | "sm";
|
|
4
4
|
}): React.JSX.Element;
|
|
5
5
|
declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
6
|
-
declare function CardTitle({ className, tooltip, children, ...props }: React.ComponentProps<"div"> & {
|
|
6
|
+
declare function CardTitle({ className, tooltip, moreInformationLabel, children, ...props }: React.ComponentProps<"div"> & {
|
|
7
7
|
tooltip?: React.ReactNode;
|
|
8
|
+
/** Accessible name for the tooltip trigger. Sourced from the i18n dictionary at key `"card.moreInformation"` when omitted. */
|
|
9
|
+
moreInformationLabel?: string;
|
|
8
10
|
}): React.JSX.Element;
|
|
9
11
|
declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
10
12
|
declare function CardAction({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,qBAY3D;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,OAAO,EACP,oBAAoB,EACpB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,8HAA8H;IAC9H,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,qBA+EA;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ5E;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQxE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAC"}
|
|
@@ -2,6 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { Info } from "../../icons/lucide.js";
|
|
4
4
|
import { cn } from "../../lib/utils.js";
|
|
5
|
+
import { useC4Dictionary } from "../../lib/i18n/context.js";
|
|
6
|
+
import { useIsTruncated } from "../../hooks/use-is-truncated.js";
|
|
5
7
|
import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
|
|
6
8
|
import { typographyVariants } from "./typography.js";
|
|
7
9
|
function Card({ className, size = "default", ...props }) {
|
|
@@ -10,7 +12,21 @@ function Card({ className, size = "default", ...props }) {
|
|
|
10
12
|
function CardHeader({ className, ...props }) {
|
|
11
13
|
return (_jsx("div", { "data-slot": "card-header", className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3", className), ...props }));
|
|
12
14
|
}
|
|
13
|
-
function CardTitle({ className, tooltip, children, ...props }) {
|
|
15
|
+
function CardTitle({ className, tooltip, moreInformationLabel, children, ...props }) {
|
|
16
|
+
const { t } = useC4Dictionary();
|
|
17
|
+
// No focusable ancestor wraps this title (unlike NavBreadcrumb's label
|
|
18
|
+
// button) — plain static text, per the "Truncated Text" decision tree in
|
|
19
|
+
// docs/specs/shadcn/patterns.md. `tabIndex={0}` goes directly on the label
|
|
20
|
+
// span so it becomes its own minimal focus stop; the pre-existing `tooltip`
|
|
21
|
+
// prop above is a separate, unrelated info-icon affordance.
|
|
22
|
+
const { ref: labelRef, isTruncated, measure, } = useIsTruncated();
|
|
23
|
+
React.useLayoutEffect(() => {
|
|
24
|
+
measure();
|
|
25
|
+
});
|
|
26
|
+
const labelSpan = (_jsx("span", { ref: labelRef, tabIndex: 0, onPointerEnter: measure, onFocus: measure, className: "min-w-0 truncate rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", children: children }));
|
|
27
|
+
// Mounted only when clipped — see nav-breadcrumb.tsx for why an
|
|
28
|
+
// unconditionally-mounted Tooltip is never the right default.
|
|
29
|
+
const labelElement = isTruncated ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: labelSpan }), _jsx(TooltipContent, { children: children })] })) : (labelSpan);
|
|
14
30
|
return (_jsx("div", { "data-slot": "card-title", className: cn(
|
|
15
31
|
// min-w-0: without it, this grid item's flex-in-grid content (below)
|
|
16
32
|
// reports its unwrapped text as the item's min-content size, so
|
|
@@ -21,7 +37,7 @@ function CardTitle({ className, tooltip, children, ...props }) {
|
|
|
21
37
|
// Share the type scale via `typographyVariants`; the sm-size Card keeps
|
|
22
38
|
// its 14px override appended after (a distinct group-data modifier, so
|
|
23
39
|
// tailwind-merge does not drop the base text-base).
|
|
24
|
-
typographyVariants({ variant: "heading-sm" }), "group-data-[size=sm]/card:text-sm", className), ...props, children: _jsxs("span", { className: "flex min-w-0 items-center gap-[0.3125rem]", children: [
|
|
40
|
+
typographyVariants({ variant: "heading-sm" }), "group-data-[size=sm]/card:text-sm", className), ...props, children: _jsxs("span", { className: "flex min-w-0 items-center gap-[0.3125rem]", children: [labelElement, tooltip != null && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "inline-flex size-3.5 shrink-0 cursor-help items-center justify-center rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", "aria-label": moreInformationLabel ?? t("card.moreInformation"), children: _jsx(Info, { className: "size-3.5" }) }) }), _jsx(TooltipContent, { children: tooltip })] }))] }) }));
|
|
25
41
|
}
|
|
26
42
|
function CardDescription({ className, ...props }) {
|
|
27
43
|
return (_jsx("div", { "data-slot": "card-description", className: cn(typographyVariants({ variant: "body-subtle" }), className), ...props }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../../src/components/ui/card.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,SAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,GAAG,KAAK,EACkD;IAC1D,OAAO,CACL,2BACY,MAAM,eACL,IAAI,EACf,SAAS,EAAE,EAAE,CACX,wXAAwX,EACxX,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,oSAAoS,EACpS,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../../src/components/ui/card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ declare function ChartContainer({ id, className, children, config, loading, empt
|
|
|
12
12
|
config: ChartConfig;
|
|
13
13
|
loading?: boolean;
|
|
14
14
|
empty?: boolean;
|
|
15
|
+
/** Message shown in place of the chart when `empty` is set. Sourced from the i18n dictionary at key `"chart.empty"` when omitted. */
|
|
15
16
|
emptyMessage?: string;
|
|
16
17
|
children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
17
18
|
}): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/chart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/chart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import * as RechartsPrimitive from "recharts";
|
|
4
4
|
import { cn } from "../../lib/utils.js";
|
|
5
|
+
import { useC4Dictionary } from "../../lib/i18n/context.js";
|
|
5
6
|
import { CATEGORICAL_ORDER } from "./chart-colors.js";
|
|
6
7
|
import { Skeleton } from "./skeleton.js";
|
|
7
8
|
/**
|
|
@@ -37,10 +38,11 @@ function useChart() {
|
|
|
37
38
|
}
|
|
38
39
|
return context;
|
|
39
40
|
}
|
|
40
|
-
function ChartContainer({ id, className, children, config, loading = false, empty = false, emptyMessage
|
|
41
|
+
function ChartContainer({ id, className, children, config, loading = false, empty = false, emptyMessage, ...props }) {
|
|
42
|
+
const { t } = useC4Dictionary();
|
|
41
43
|
const generatedId = React.useId();
|
|
42
44
|
const chartId = `chart-${generatedId.replace(/:/g, "")}`;
|
|
43
|
-
return (_jsx(ChartContext.Provider, { value: { config }, children: _jsxs("div", { id: id, "data-slot": "chart", "data-chart": chartId, "aria-busy": loading || undefined, className: cn("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick-value]:fill-neutral-foreground-subtle [&_.recharts-cartesian-grid_line]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-radial-bar-background-sector]:fill-neutral-background-strong [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-neutral-background-strong [&_.recharts-reference-line-line]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden", className), ...props, children: [_jsx(ChartStyle, { id: chartId, config: config }), loading ? (_jsx(Skeleton, { className: "h-full w-full" })) : empty ? (_jsx("div", { className: "flex h-full w-full items-center justify-center text-neutral-foreground-subtle", children: emptyMessage })) : (_jsx(RechartsPrimitive.ResponsiveContainer, { width: "100%", height: "100%", children: children }))] }) }));
|
|
45
|
+
return (_jsx(ChartContext.Provider, { value: { config }, children: _jsxs("div", { id: id, "data-slot": "chart", "data-chart": chartId, "aria-busy": loading || undefined, className: cn("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick-value]:fill-neutral-foreground-subtle [&_.recharts-cartesian-grid_line]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-radial-bar-background-sector]:fill-neutral-background-strong [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-neutral-background-strong [&_.recharts-reference-line-line]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden", className), ...props, children: [_jsx(ChartStyle, { id: chartId, config: config }), loading ? (_jsx(Skeleton, { className: "h-full w-full" })) : empty ? (_jsx("div", { className: "flex h-full w-full items-center justify-center text-neutral-foreground-subtle", children: emptyMessage ?? t("chart.empty") })) : (_jsx(RechartsPrimitive.ResponsiveContainer, { width: "100%", height: "100%", children: children }))] }) }));
|
|
44
46
|
}
|
|
45
47
|
function ChartStyle({ id, config }) {
|
|
46
48
|
const entries = Object.entries(config);
|