@camunda/design-system 0.48.0 → 0.50.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/src/components/ui/app-header.d.ts.map +1 -1
- package/dist/src/components/ui/app-header.js +72 -1
- package/dist/src/components/ui/app-header.js.map +1 -1
- package/dist/src/components/ui/badge.js +1 -1
- package/dist/src/components/ui/badge.js.map +1 -1
- package/dist/src/components/ui/button.js +1 -1
- package/dist/src/components/ui/card.js +1 -1
- package/dist/src/components/ui/card.js.map +1 -1
- package/dist/src/components/ui/chart.d.ts.map +1 -1
- package/dist/src/components/ui/chart.js +2 -2
- package/dist/src/components/ui/chart.js.map +1 -1
- package/dist/src/components/ui/checkbox.js +1 -1
- package/dist/src/components/ui/choice-card.js +1 -1
- package/dist/src/components/ui/choice-card.js.map +1 -1
- package/dist/src/components/ui/combobox.d.ts +28 -10
- package/dist/src/components/ui/combobox.d.ts.map +1 -1
- package/dist/src/components/ui/combobox.js +110 -7
- package/dist/src/components/ui/combobox.js.map +1 -1
- package/dist/src/components/ui/data-table.js +22 -2
- package/dist/src/components/ui/data-table.js.map +1 -1
- package/dist/src/components/ui/date-range-picker.js +1 -1
- package/dist/src/components/ui/definition-tooltip.js +1 -1
- package/dist/src/components/ui/inline-edit.d.ts.map +1 -1
- package/dist/src/components/ui/inline-edit.js +33 -5
- package/dist/src/components/ui/inline-edit.js.map +1 -1
- package/dist/src/components/ui/input.d.ts +8 -1
- package/dist/src/components/ui/input.d.ts.map +1 -1
- package/dist/src/components/ui/input.js +19 -3
- package/dist/src/components/ui/input.js.map +1 -1
- package/dist/src/components/ui/multi-select.js +3 -3
- package/dist/src/components/ui/nav-breadcrumb.d.ts +66 -1
- package/dist/src/components/ui/nav-breadcrumb.d.ts.map +1 -1
- package/dist/src/components/ui/nav-breadcrumb.js +386 -34
- package/dist/src/components/ui/nav-breadcrumb.js.map +1 -1
- package/dist/src/components/ui/notifications.js +1 -1
- package/dist/src/components/ui/notifications.js.map +1 -1
- package/dist/src/components/ui/radio-group.js +1 -1
- package/dist/src/components/ui/scorecard.d.ts.map +1 -1
- package/dist/src/components/ui/scorecard.js +1 -1
- package/dist/src/components/ui/scorecard.js.map +1 -1
- package/dist/src/components/ui/scroll-area.js +1 -1
- package/dist/src/components/ui/scroll-area.js.map +1 -1
- package/dist/src/components/ui/select.d.ts +8 -2
- package/dist/src/components/ui/select.d.ts.map +1 -1
- package/dist/src/components/ui/select.js +18 -2
- package/dist/src/components/ui/select.js.map +1 -1
- package/dist/src/components/ui/sparkline.d.ts +2 -1
- package/dist/src/components/ui/sparkline.d.ts.map +1 -1
- package/dist/src/components/ui/sparkline.js +2 -2
- package/dist/src/components/ui/sparkline.js.map +1 -1
- package/dist/src/components/ui/stepper.d.ts.map +1 -1
- package/dist/src/components/ui/stepper.js +1 -1
- package/dist/src/components/ui/stepper.js.map +1 -1
- package/dist/src/components/ui/switch.d.ts.map +1 -1
- package/dist/src/components/ui/switch.js +1 -7
- package/dist/src/components/ui/switch.js.map +1 -1
- package/dist/src/components/ui/tabs.js +1 -1
- package/dist/src/components/ui/tabs.js.map +1 -1
- package/dist/src/components/ui/textarea.d.ts +8 -1
- package/dist/src/components/ui/textarea.d.ts.map +1 -1
- package/dist/src/components/ui/textarea.js +16 -3
- package/dist/src/components/ui/textarea.js.map +1 -1
- package/dist/src/components/ui/toggle.js +1 -1
- package/dist/src/components/ui/tooltip.d.ts +7 -1
- package/dist/src/components/ui/tooltip.d.ts.map +1 -1
- package/dist/src/components/ui/tooltip.js +19 -2
- package/dist/src/components/ui/tooltip.js.map +1 -1
- package/dist/src/examples/project-detail/ProjectDetailPage.d.ts.map +1 -1
- package/dist/src/examples/project-detail/ProjectDetailPage.js +1 -1
- package/dist/src/examples/project-detail/ProjectDetailPage.js.map +1 -1
- package/dist/src/hooks/use-is-truncated.d.ts +16 -0
- package/dist/src/hooks/use-is-truncated.d.ts.map +1 -0
- package/dist/src/hooks/use-is-truncated.js +24 -0
- package/dist/src/hooks/use-is-truncated.js.map +1 -0
- package/dist/src/icons/custom/AiIcon.d.ts.map +1 -1
- package/dist/src/icons/custom/AiIcon.js +1 -1
- package/dist/src/icons/custom/AiIcon.js.map +1 -1
- package/dist/src/icons/custom/BpmnDiagramIcon.d.ts.map +1 -1
- package/dist/src/icons/custom/BpmnDiagramIcon.js +1 -1
- package/dist/src/icons/custom/BpmnDiagramIcon.js.map +1 -1
- package/dist/src/icons/custom/ConnectorIcon.js +1 -1
- package/dist/src/icons/custom/ConnectorIcon.js.map +1 -1
- package/dist/src/icons/custom/ConnectorTemplateIcon.d.ts.map +1 -1
- package/dist/src/icons/custom/ConnectorTemplateIcon.js +2 -2
- package/dist/src/icons/custom/ConnectorTemplateIcon.js.map +1 -1
- package/dist/src/icons/custom/DecisionIcon.d.ts.map +1 -1
- package/dist/src/icons/custom/DecisionIcon.js +1 -1
- package/dist/src/icons/custom/DecisionIcon.js.map +1 -1
- package/dist/src/icons/custom/FormIcon.d.ts.map +1 -1
- package/dist/src/icons/custom/FormIcon.js +1 -1
- package/dist/src/icons/custom/FormIcon.js.map +1 -1
- package/dist/src/icons/custom/ModelerIcon.d.ts.map +1 -1
- package/dist/src/icons/custom/ModelerIcon.js +1 -1
- package/dist/src/icons/custom/ModelerIcon.js.map +1 -1
- package/dist/src/icons/index.d.ts +1 -9
- package/dist/src/icons/index.d.ts.map +1 -1
- package/dist/src/icons/index.js +1 -9
- package/dist/src/icons/index.js.map +1 -1
- package/dist/src/icons/registry.d.ts +8 -0
- package/dist/src/icons/registry.d.ts.map +1 -1
- package/dist/src/icons/registry.js +17 -17
- package/dist/src/icons/registry.js.map +1 -1
- package/dist/src/icons/registry.json +16 -16
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/styles.css +126 -27
- package/package.json +3 -3
- package/dist/src/icons/custom/ApiClientIcon.d.ts +0 -2
- package/dist/src/icons/custom/ApiClientIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/ApiClientIcon.js +0 -5
- package/dist/src/icons/custom/ApiClientIcon.js.map +0 -1
- package/dist/src/icons/custom/AuditLogIcon.d.ts +0 -2
- package/dist/src/icons/custom/AuditLogIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/AuditLogIcon.js +0 -5
- package/dist/src/icons/custom/AuditLogIcon.js.map +0 -1
- package/dist/src/icons/custom/BackupIcon.d.ts +0 -2
- package/dist/src/icons/custom/BackupIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/BackupIcon.js +0 -5
- package/dist/src/icons/custom/BackupIcon.js.map +0 -1
- package/dist/src/icons/custom/ClusterIcon.d.ts +0 -2
- package/dist/src/icons/custom/ClusterIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/ClusterIcon.js +0 -5
- package/dist/src/icons/custom/ClusterIcon.js.map +0 -1
- package/dist/src/icons/custom/DeploymentIcon.d.ts +0 -2
- package/dist/src/icons/custom/DeploymentIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/DeploymentIcon.js +0 -5
- package/dist/src/icons/custom/DeploymentIcon.js.map +0 -1
- package/dist/src/icons/custom/IpAllowlistIcon.d.ts +0 -2
- package/dist/src/icons/custom/IpAllowlistIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/IpAllowlistIcon.js +0 -5
- package/dist/src/icons/custom/IpAllowlistIcon.js.map +0 -1
- package/dist/src/icons/custom/ProcessApplicationIcon.d.ts +0 -2
- package/dist/src/icons/custom/ProcessApplicationIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/ProcessApplicationIcon.js +0 -5
- package/dist/src/icons/custom/ProcessApplicationIcon.js.map +0 -1
- package/dist/src/icons/custom/ProjectIcon.d.ts +0 -2
- package/dist/src/icons/custom/ProjectIcon.d.ts.map +0 -1
- package/dist/src/icons/custom/ProjectIcon.js +0 -5
- package/dist/src/icons/custom/ProjectIcon.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-header.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/app-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"app-header.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/app-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAoC/E,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;IACpE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACrC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2GAA2G;IAC3G,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EAEb,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,kBAA2C,EAC3C,kBAAyB,EACzB,qBAAgC,EAChC,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,qBA6IhB"}
|
|
@@ -7,6 +7,39 @@ import { useSidebar, SidebarTrigger } from "./sidebar-provider.js";
|
|
|
7
7
|
import { CamundaLogo } from "./camunda-logo.js";
|
|
8
8
|
import {} from "./nav-icon.js";
|
|
9
9
|
import { HeaderTools, useHeaderTools } from "./nav-tools.js";
|
|
10
|
+
/**
|
|
11
|
+
* Minimum width of the breadcrumb slot — now a READABILITY floor for the user's
|
|
12
|
+
* current location, and nothing else.
|
|
13
|
+
*
|
|
14
|
+
* ITS PURPOSE CHANGED, which is why it is no longer derived from `nav-breadcrumb.tsx`.
|
|
15
|
+
* It used to be a REACHABILITY floor: it had to clear the container width at or below
|
|
16
|
+
* which `NavBreadcrumb` hid its own overflow trigger, because below that width a
|
|
17
|
+
* segment could be reachable neither inline nor through the menu, and a hand-picked
|
|
18
|
+
* 112px floor against that 136px threshold shipped exactly that hole. `NavBreadcrumb`
|
|
19
|
+
* now measures instead of stepping through container-query thresholds: it omits the
|
|
20
|
+
* trigger only when nothing was dropped, so reachability holds by construction at
|
|
21
|
+
* every width and there is no threshold left to clear. Deriving this from an imported
|
|
22
|
+
* constant is therefore not possible — every geometric quantity over there is read
|
|
23
|
+
* from the DOM at runtime — and inventing a derivation would restate the same number
|
|
24
|
+
* with a false provenance. One locally-owned constant has nothing to drift against.
|
|
25
|
+
*
|
|
26
|
+
* WHAT REMAINS is the defect the floor was worth having for: `basis-0` gives this slot
|
|
27
|
+
* only what the row has left over, measured at 47.5px on the 375px story with a
|
|
28
|
+
* license tag and three icon buttons, which rendered the active segment ~5.7px wide —
|
|
29
|
+
* present in the DOM, unreadable on screen.
|
|
30
|
+
*
|
|
31
|
+
* WHY 144, and why not more: measured on that same story, the trailing slot's license
|
|
32
|
+
* tag shows 11px at a 144px slot, 3px at 152px and nothing from 156px onward, and from
|
|
33
|
+
* 176px the header itself overflows horizontally — a scrolling header row, which the
|
|
34
|
+
* `ResponsiveViewport` story asserts against. 144px is the largest floor that leaves the
|
|
35
|
+
* tag a non-zero width, so it is what this row affords. What it delivers there: a
|
|
36
|
+
* 102.2px box for the current-location segment and a 38px ellipsized label. Both are
|
|
37
|
+
* asserted geometrically in that story (real widths, not `toBeVisible()`, which passes
|
|
38
|
+
* on a zero-width clipped element), so a regression fails a test rather than going
|
|
39
|
+
* unnoticed. The full name stays one hover away regardless, via the truncation tooltip
|
|
40
|
+
* every segment carries.
|
|
41
|
+
*/
|
|
42
|
+
const BREADCRUMB_SLOT_FLOOR_PX = 144;
|
|
10
43
|
export function AppHeader({ logo, appName, breadcrumb, trailing, actions, globalActions,
|
|
11
44
|
// Destructured before the spread below, or they land on the <header> as unknown attributes.
|
|
12
45
|
tools, activeToolKey, onActiveToolChange, skipToContentTargetId, skipToContentLabel = "Skip to main content", showSidebarTrigger = true, sidebarCollapsedWidth = "3.5rem", className, children, ...props }) {
|
|
@@ -25,7 +58,45 @@ tools, activeToolKey, onActiveToolChange, skipToContentTargetId, skipToContentLa
|
|
|
25
58
|
_jsx(SidebarTrigger, { className: "-mr-4 shrink-0" })), (logoNode || appName) && (
|
|
26
59
|
// `-mr-4` cancels the header's own `gap-4` after this block — the logo box's
|
|
27
60
|
// centering and the breadcrumb's own `px-2` already provide spacing.
|
|
28
|
-
_jsxs("div", { className: "-mr-4 flex h-full shrink-0 items-center gap-2", children: [logoNode && (_jsx("div", { className: "flex h-full shrink-0 items-center justify-center", style: { width: showTrigger ? "3rem" : sidebarCollapsedWidth }, children: logoNode })), appName && (_jsx(Text, { as: "span", variant: "heading-xs", className: "hidden lg:inline", children: appName }))] })), breadcrumb && (
|
|
61
|
+
_jsxs("div", { className: "-mr-4 flex h-full shrink-0 items-center gap-2", children: [logoNode && (_jsx("div", { className: "flex h-full shrink-0 items-center justify-center", style: { width: showTrigger ? "3rem" : sidebarCollapsedWidth }, children: logoNode })), appName && (_jsx(Text, { as: "span", variant: "heading-xs", className: "hidden lg:inline", children: appName }))] })), breadcrumb && (
|
|
62
|
+
// `flex-1 basis-0` here too: this is the width `NavBreadcrumb` measures its
|
|
63
|
+
// segments against, and it must come from the row's leftover space rather than
|
|
64
|
+
// from the breadcrumb's own content — otherwise dropping a segment would narrow
|
|
65
|
+
// the box that decided to drop it.
|
|
66
|
+
//
|
|
67
|
+
// No `overflow-hidden` on this wrapper (#522 removed it, keep it removed): it
|
|
68
|
+
// clipped a keyboard-focused breadcrumb segment's ring, since `overflow-x:
|
|
69
|
+
// hidden` forces `overflow-y` to compute as `auto`, which clips a flush ring's
|
|
70
|
+
// box-shadow the same way `overflow: hidden` does. Truncation now happens one
|
|
71
|
+
// level in, on `nav-breadcrumb.tsx`'s own `<nav>` — see
|
|
72
|
+
// `BreadcrumbContainerReportsWidth`'s spec entry for why that element needs
|
|
73
|
+
// its own `overflow-hidden` regardless, and `nav-breadcrumb.tsx`'s segment
|
|
74
|
+
// button for the `ring-inset` that keeps *that* boundary from reintroducing
|
|
75
|
+
// the same clipped-ring bug one level deeper.
|
|
76
|
+
//
|
|
77
|
+
// The floor is a FLOOR, not a preference — see `BREADCRUMB_SLOT_FLOOR_PX` for
|
|
78
|
+
// what it protects and what it delivers. Once the row is over-subscribed the
|
|
79
|
+
// trailing slot below yields instead — see its comment for why it is that slot
|
|
80
|
+
// and not the actions.
|
|
81
|
+
_jsx("div", { "data-slot": "app-header-breadcrumb", className: "flex-1 basis-0", style: { minWidth: BREADCRUMB_SLOT_FLOOR_PX }, children: breadcrumb })), children, _jsxs("div", { className: "ml-auto flex min-w-0 items-center gap-2", children: [trailing && (
|
|
82
|
+
// The row's only yielding surface. Every Button here is `shrink-0` and the
|
|
83
|
+
// breadcrumb slot has a floor, so when the row is over-subscribed (a 375px
|
|
84
|
+
// viewport carrying a license tag plus three icon buttons) something has to
|
|
85
|
+
// give, and this is the slot chosen to: a clipped action button is an
|
|
86
|
+
// affordance the user cannot reach at all, while a clipped tag is still a
|
|
87
|
+
// tag and reads fully as soon as the window widens. Stated honestly rather
|
|
88
|
+
// than flatteringly: at the 375px story's budget the 107.5px license tag is
|
|
89
|
+
// down to 11px of visible width — a colored edge, not a readable label. It
|
|
90
|
+
// is a non-collapse guarantee, not a legibility one, and the story asserts
|
|
91
|
+
// it as such. A consumer that would rather drop the tag than show it that
|
|
92
|
+
// clipped hides it on their own side, as Operate does below 48rem.
|
|
93
|
+
//
|
|
94
|
+
// Clipping, not truncation with an ellipsis: `trailing` takes any node, and
|
|
95
|
+
// this component cannot restyle a consumer's element into ellipsizing itself
|
|
96
|
+
// (DS `Badge`, the canonical content here, is `shrink-0` with
|
|
97
|
+
// `whitespace-nowrap`). The clip lands on this box's trailing edge, so under
|
|
98
|
+
// RTL it removes the START of the text rather than its end.
|
|
99
|
+
_jsx("div", { "data-slot": "app-header-trailing", className: "min-w-0 overflow-hidden", children: trailing })), globalActions
|
|
29
100
|
?.filter((action) => action.element || action.icon)
|
|
30
101
|
.map((action) => action.element ? (_jsx(React.Fragment, { children: action.element }, action.key)) : (_jsx(Button, { variant: "ghost", size: "icon", "aria-label": action.label, onClick: action.onClick, children: action.icon ? (_jsx(action.icon, { "aria-hidden": true, className: "size-4" })) : null }, action.key))), tools !== undefined && tools.length > 0 && (_jsx(HeaderTools, { tools: tools, ...headerTools })), actions] })] }));
|
|
31
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-header.js","sourceRoot":"","sources":["../../../../src/components/ui/app-header.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAgB,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"app-header.js","sourceRoot":"","sources":["../../../../src/components/ui/app-header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import { cva } from "class-variance-authority";
|
|
4
4
|
import { Slot } from "radix-ui";
|
|
5
5
|
import { cn } from "../../lib/utils.js";
|
|
6
|
-
const badgeVariants = cva("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:ring-
|
|
6
|
+
const badgeVariants = cva("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-danger-action-default aria-invalid:ring-danger-action-default/20 dark:aria-invalid:ring-danger-action-default/40 [&>svg]:pointer-events-none [&>svg]:size-3!", {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
9
|
primary: "border-transparent bg-primary-action-default text-primary-action-foreground hover:bg-primary-action-hover active:bg-primary-action-active disabled:bg-primary-action-disabled [a]:hover:bg-primary-action-hover",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../../src/components/ui/badge.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAE/B,MAAM,aAAa,GAAG,GAAG,CACvB,
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../../src/components/ui/badge.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAE/B,MAAM,aAAa,GAAG,GAAG,CACvB,ifAAif,EACjf;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,iNAAiN;YACnN,MAAM,EACJ,wOAAwO;YAC1O,OAAO,EACL,iIAAiI;YACnI,MAAM,EACJ,0NAA0N;YAC5N,OAAO,EACL,iIAAiI;YACnI,OAAO,EACL,iIAAiI;YACnI,IAAI,EAAE,qHAAqH;SAC5H;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAC;AAEF,SAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EAEkD;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAE1C,OAAO,CACL,KAAC,IAAI,iBACO,OAAO,kBACH,OAAO,EACrB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { Loader2 } from "lucide-react";
|
|
|
5
5
|
import { Slot } from "radix-ui";
|
|
6
6
|
import { cn } from "../../lib/utils.js";
|
|
7
7
|
import { withRef } from "../../lib/with-ref.js";
|
|
8
|
-
const buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-
|
|
8
|
+
const buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-2 focus-visible:ring-ring data-[focus-visible-restore]:ring-2 data-[focus-visible-restore]:ring-ring active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-invalid:border-danger-action-default aria-invalid:ring-3 aria-invalid:ring-danger-action-default/20 dark:aria-invalid:border-danger-action-default/50 dark:aria-invalid:ring-danger-action-default/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
11
|
default: "bg-primary-action-default text-primary-action-foreground hover:bg-primary-action-hover active:bg-primary-action-active disabled:bg-primary-action-disabled aria-disabled:bg-primary-action-disabled",
|
|
@@ -21,7 +21,7 @@ function CardTitle({ className, tooltip, children, ...props }) {
|
|
|
21
21
|
// Share the type scale via `typographyVariants`; the sm-size Card keeps
|
|
22
22
|
// its 14px override appended after (a distinct group-data modifier, so
|
|
23
23
|
// 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: [_jsx("span", { className: "min-w-0 truncate", children: children }), 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", "aria-label": "More information", children: _jsx(Info, { className: "size-3.5" }) }) }), _jsx(TooltipContent, { children: tooltip })] }))] }) }));
|
|
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: [_jsx("span", { className: "min-w-0 truncate", children: children }), 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": "More information", children: _jsx(Info, { className: "size-3.5" }) }) }), _jsx(TooltipContent, { children: tooltip })] }))] }) }));
|
|
25
25
|
}
|
|
26
26
|
function CardDescription({ className, ...props }) {
|
|
27
27
|
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,8WAA8W,EAC9W,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,EACoD;IAC5D,OAAO,CACL,2BACY,YAAY,EACtB,SAAS,EAAE,EAAE;QACX,qEAAqE;QACrE,gEAAgE;QAChE,kEAAkE;QAClE,iEAAiE;QACjE,+CAA+C;QAC/C,SAAS;QACT,wEAAwE;QACxE,uEAAuE;QACvE,oDAAoD;QACpD,kBAAkB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAC7C,mCAAmC,EACnC,SAAS,CACV,KACG,KAAK,YAET,gBAAM,SAAS,EAAC,2CAA2C,aACzD,eAAM,SAAS,EAAC,kBAAkB,YAAE,QAAQ,GAAQ,EACnD,OAAO,IAAI,IAAI,IAAI,CAClB,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,
|
|
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,8WAA8W,EAC9W,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,EACoD;IAC5D,OAAO,CACL,2BACY,YAAY,EACtB,SAAS,EAAE,EAAE;QACX,qEAAqE;QACrE,gEAAgE;QAChE,kEAAkE;QAClE,iEAAiE;QACjE,+CAA+C;QAC/C,SAAS;QACT,wEAAwE;QACxE,uEAAuE;QACvE,oDAAoD;QACpD,kBAAkB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAC7C,mCAAmC,EACnC,SAAS,CACV,KACG,KAAK,YAET,gBAAM,SAAS,EAAC,2CAA2C,aACzD,eAAM,SAAS,EAAC,kBAAkB,YAAE,QAAQ,GAAQ,EACnD,OAAO,IAAI,IAAI,IAAI,CAClB,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4IAA4I,gBAC3I,kBAAkB,YAE7B,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,GAAG,GACtB,GACM,EACjB,KAAC,cAAc,cAAE,OAAO,GAAkB,IAClC,CACX,IACI,GACH,CACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IAC3E,OAAO,CACL,2BACY,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,KACpE,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,gEAAgE,EAChE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACvE,OAAO,CACL,2BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,qCAAqC,EAAE,SAAS,CAAC,KAC3D,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,wGAAwG,EACxG,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAC"}
|
|
@@ -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;AAG9C,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,YAAY,EAAE,gBAAgB,EAAE,CAAC;AA8BjC,MAAM,MAAM,WAAW,GAAG,MAAM,CAC9B,MAAM,EACN;IACE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,oEAAoE;IACpE,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CACF,CAAC;AAgBF,iBAAS,cAAc,CAAC,EACtB,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAe,EACf,KAAa,EACb,YAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,cAAc,CAC5B,OAAO,iBAAiB,CAAC,mBAAmB,CAC7C,CAAC,UAAU,CAAC,CAAC;CACf,qBAgCA;AA4DD,QAAA,MAAM,YAAY,kCAA4B,CAAC;AAE/C,iBAAS,mBAAmB,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAiB,EACjB,SAAiB,EACjB,aAAqB,EACrB,KAAK,EACL,cAAc,EACd,SAAS,EACT,KAAK,EACL,cAAc,EACd,OAAO,GACR,EAAE,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,4BAoHA;AAED,QAAA,MAAM,WAAW,GAAI,oCAIlB,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,MAAM,CAAC,sBAMvD,CAAC;AAEF,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,QAAgB,EAChB,OAAO,EACP,aAAwB,EACxB,UAAoB,EACpB,MAAqB,EACrB,YAAY,EACZ,WAAW,EACX,OAAO,GACR,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,iBAAiB,CAAC,aAAa,EAAE,CAAC;IACrD,aAAa,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAChC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/chart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ function useChart() {
|
|
|
34
34
|
function ChartContainer({ id, className, children, config, loading = false, empty = false, emptyMessage = "No data", ...props }) {
|
|
35
35
|
const generatedId = React.useId();
|
|
36
36
|
const chartId = `chart-${generatedId.replace(/:/g, "")}`;
|
|
37
|
-
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-
|
|
37
|
+
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 }))] }) }));
|
|
38
38
|
}
|
|
39
39
|
function ChartStyle({ id, config }) {
|
|
40
40
|
const entries = Object.entries(config);
|
|
@@ -142,7 +142,7 @@ function ChartLegendContent({ className, hideIcon = false, payload, verticalAlig
|
|
|
142
142
|
} })), itemConfig?.label ?? lookupKey] }));
|
|
143
143
|
const itemClassName = cn("flex items-center gap-1.5 text-neutral-foreground-subtle [&>svg]:size-3 [&>svg]:text-neutral-foreground-subtle", isInactive && "opacity-50");
|
|
144
144
|
if (onToggleKey && inactiveKeys) {
|
|
145
|
-
return (_jsx("button", { type: "button", "aria-pressed": !isInactive, onClick: () => onToggleKey(lookupKey), className: cn(itemClassName, "cursor-pointer"), children: itemContent }, `${lookupKey}-${index}`));
|
|
145
|
+
return (_jsx("button", { type: "button", "aria-pressed": !isInactive, onClick: () => onToggleKey(lookupKey), className: cn(itemClassName, "cursor-pointer rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring"), children: itemContent }, `${lookupKey}-${index}`));
|
|
146
146
|
}
|
|
147
147
|
return (_jsx("div", { className: itemClassName, children: itemContent }, `${lookupKey}-${index}`));
|
|
148
148
|
}) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.js","sourceRoot":"","sources":["../../../../src/components/ui/chart.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAyB,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;;;;GAMG;AACH,MAAM,cAAc,GAGhB;IACF,OAAO,EAAE,+BAA+B;IACxC,MAAM,EAAE,8BAA8B;IACtC,OAAO,EAAE,+BAA+B;IACxC,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEF,SAAS,WAAW,CAClB,KAAuB;IAEvB,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS,CACpB,CAAC;AACJ,CAAC;AAgBD,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAA2B,IAAI,CAAC,CAAC;AAEzE,SAAS,QAAQ;IACf,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,YAAY,GAAG,SAAS,EACxB,GAAG,KAAK,EAST;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,SAAS,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IAEzD,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,YACtC,eACE,EAAE,EAAE,EAAE,eACI,OAAO,gBACL,OAAO,eACR,OAAO,IAAI,SAAS,EAC/B,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"chart.js","sourceRoot":"","sources":["../../../../src/components/ui/chart.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAyB,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;;;;GAMG;AACH,MAAM,cAAc,GAGhB;IACF,OAAO,EAAE,+BAA+B;IACxC,MAAM,EAAE,8BAA8B;IACtC,OAAO,EAAE,+BAA+B;IACxC,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEF,SAAS,WAAW,CAClB,KAAuB;IAEvB,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS,CACpB,CAAC;AACJ,CAAC;AAgBD,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAA2B,IAAI,CAAC,CAAC;AAEzE,SAAS,QAAQ;IACf,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,YAAY,GAAG,SAAS,EACxB,GAAG,KAAK,EAST;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,SAAS,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IAEzD,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,YACtC,eACE,EAAE,EAAE,EAAE,eACI,OAAO,gBACL,OAAO,eACR,OAAO,IAAI,SAAS,EAC/B,SAAS,EAAE,EAAE,CACX,0gBAA0gB,EAC1gB,SAAS,CACV,KACG,KAAK,aAET,KAAC,UAAU,IAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAI,EAC1C,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,QAAQ,IAAC,SAAS,EAAC,eAAe,GAAG,CACvC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAC,+EAA+E,YAC3F,YAAY,GACT,CACP,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,CAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,YAC9D,QAAQ,GAC6B,CACzC,IACG,GACgB,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAuC;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACrC,OAAO;SACJ,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;SAC3C,MAAM,CACL,CAAC,KAAK,EAA6B,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CACrE,CACJ,CAAC;IACF,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,MAAM,CACxD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAC7C,CAAC;IACF,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE;QACtD,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;QAC9B,IAAI,QAAgB,CAAC;QAErB,IAAI,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC;QAC/B,CAAC;aAAM,IAAI,kBAAkB,GAAG,yBAAyB,CAAC,MAAM,EAAE,CAAC;YACjE,QAAQ,GAAG,SAAS,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,CAAC;YACrE,kBAAkB,IAAI,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,oEAAoE;YACpE,qEAAqE;YACrE,oBAAoB;YACpB,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,OAAO,aAAa,GAAG,KAAK,QAAQ,GAAG,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,0BAAQ,gBAAgB,EAAE,SAAS,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAS,CACzE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,OAAgB,EAAE,GAAW;IACtD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QACrE,OAAO,MAAM,CAAE,OAAmC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC;AAE/C,SAAS,mBAAmB,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,KAAK,EACjB,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,cAAc,EACd,SAAS,EACT,KAAK,EACL,cAAc,EACd,OAAO,GASR;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GACT,CAAC,cAAc,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC1C,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;YACjC,CAAC,CAAC,KAAK,CAAC;QAEZ,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,YAC9C,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,GAC3B,CACP,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,YAAG,KAAK,GAAO,CAAC;IAC1E,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAExE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC;IAE9D,OAAO,CACL,4BACY,uBAAuB,EACjC,SAAS,EAAE,EAAE,CACX,sIAAsI,EACtI,SAAS,CACV,aAEA,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EACjC,cAAK,SAAS,EAAC,cAAc,YAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC3B,MAAM,GAAG,GAAG,OAAO;wBACjB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;wBAC1C,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC/B,MAAM,cAAc,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;oBAEjE,OAAO,CACL,cAEE,SAAS,EAAE,EAAE,CACX,mGAAmG,EACnG,SAAS,KAAK,KAAK,IAAI,cAAc,CACtC,YAEA,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACpD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAC5D,CAAC,CAAC,CAAC,CACF,8BACG,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAClB,KAAC,UAAU,CAAC,IAAI,mBAAa,MAAM,GAAG,CACvC,CAAC,CAAC,CAAC,CACF,CAAC,aAAa,IAAI,CAChB,6BACc,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,uFAAuF,EACvF;wCACE,aAAa,EAAE,SAAS,KAAK,KAAK;wCAClC,YAAY,EAAE,SAAS,KAAK,MAAM;wCAClC,iDAAiD,EAC/C,SAAS,KAAK,QAAQ;wCACxB,QAAQ,EAAE,SAAS,IAAI,SAAS,KAAK,QAAQ;qCAC9C,CACF,EACD,KAAK,EACH;wCACE,2BAA2B,EAAE,cAAc;wCAC3C,wBAAwB,EAAE,cAAc;qCAClB,GAE1B,CACH,CACF,EACD,eACE,SAAS,EAAE,EAAE,CACX,0CAA0C,EAC1C,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CACzC,aAED,eAAK,SAAS,EAAC,cAAc,aAC1B,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAChC,eAAM,SAAS,EAAC,gCAAgC,YAC7C,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,GAC1B,IACH,EACL,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAClD,eAAM,SAAS,EAAC,mEAAmE,YAChF,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gDAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gDAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,GACT,CACR,IACG,IACL,CACJ,IAxDI,GAAG,IAAI,KAAK,CAyDb,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,EACnB,KAAK,GAAG,MAAM,EACd,aAAa,GAAG,QAAQ,EACxB,GAAG,KAAK,EAC8C,EAAE,EAAE,CAAC,CAC3D,KAAC,iBAAiB,CAAC,MAAM,IACvB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,KACxB,KAAK,GACT,CACH,CAAC;AAEF,SAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,aAAa,GAAG,QAAQ,EACxB,UAAU,GAAG,OAAO,EACpB,MAAM,GAAG,YAAY,EACrB,YAAY,EACZ,WAAW,EACX,OAAO,GAWR;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,KAAK,UAAU,CAAC;IAEzC,OAAO,CACL,2BACY,sBAAsB,EAChC,SAAS,EAAE,EAAE,CACX,YAAY,EACZ,UAAU;YACR,CAAC,CAAC,4BAA4B;YAC9B,CAAC,CAAC,EAAE,CACA,qBAAqB,EACrB,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,EAC5D,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAC1C,EACL,SAAS,CACV,YAEA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3B,MAAM,SAAS,GAAG,OAAO;gBACvB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC1C,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;YAEzD,MAAM,WAAW,GAAG,CAClB,8BACG,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC/B,KAAC,UAAU,CAAC,IAAI,mBAAa,MAAM,GAAG,CACvC,CAAC,CAAC,CAAC,CACF,6BACc,MAAM,EAClB,SAAS,EAAC,8DAA8D,EACxE,KAAK,EACH;4BACE,0BAA0B,EAAE,IAAI,CAAC,KAAK;yBAChB,GAE1B,CACH,EACA,UAAU,EAAE,KAAK,IAAI,SAAS,IAC9B,CACJ,CAAC;YAEF,MAAM,aAAa,GAAG,EAAE,CACtB,gHAAgH,EAChH,UAAU,IAAI,YAAY,CAC3B,CAAC;YAEF,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;gBAChC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,kBACC,CAAC,UAAU,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EACrC,SAAS,EAAE,EAAE,CACX,aAAa,EACb,qFAAqF,CACtF,YAEA,WAAW,IATP,GAAG,SAAS,IAAI,KAAK,EAAE,CAUrB,CACV,CAAC;YACJ,CAAC;YAED,OAAO,CACL,cAAmC,SAAS,EAAE,aAAa,YACxD,WAAW,IADJ,GAAG,SAAS,IAAI,KAAK,EAAE,CAE3B,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,uBAAuB,GACxB,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
|
4
4
|
import { cn } from "../../lib/utils.js";
|
|
5
5
|
import { CheckIcon } from "lucide-react";
|
|
6
6
|
function Checkbox({ className, ...props }) {
|
|
7
|
-
return (_jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input bg-input-background transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-
|
|
7
|
+
return (_jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input bg-input-background transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger-action-default aria-invalid:ring-3 aria-invalid:ring-danger-action-default/20 aria-invalid:aria-checked:border-primary-action-default dark:aria-invalid:border-danger-action-default/50 dark:aria-invalid:ring-danger-action-default/40 data-checked:border-primary-action-default data-checked:bg-primary-action-default data-checked:text-primary-action-foreground dark:data-checked:bg-primary-action-default", className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "grid place-content-center text-current transition-none [&>svg]:size-3.5", children: _jsx(CheckIcon, { className: "text-current" }) }) }));
|
|
8
8
|
}
|
|
9
9
|
export { Checkbox };
|
|
10
10
|
//# sourceMappingURL=checkbox.js.map
|
|
@@ -26,7 +26,7 @@ function ChoiceCardImpl({ ref, className, value, title, description, icon: Icon,
|
|
|
26
26
|
const id = React.useId();
|
|
27
27
|
const titleId = `${id}-title`;
|
|
28
28
|
const descId = `${id}-desc`;
|
|
29
|
-
return (_jsxs(RadioGroupPrimitive.Item, { ref: ref, "data-slot": "choice-card", value: value, "aria-labelledby": titleId, "aria-describedby": description ? descId : undefined, className: cn("group/choice-card relative flex flex-col items-start gap-1 rounded-xl bg-neutral-background-subtle p-4 text-left ring-1 ring-border transition-[color,box-shadow] outline-none", "hover:ring-neutral-border-strong", "focus-visible:ring-
|
|
29
|
+
return (_jsxs(RadioGroupPrimitive.Item, { ref: ref, "data-slot": "choice-card", value: value, "aria-labelledby": titleId, "aria-describedby": description ? descId : undefined, className: cn("group/choice-card relative flex flex-col items-start gap-1 rounded-xl bg-neutral-background-subtle p-4 text-left ring-1 ring-border transition-[color,box-shadow] outline-none", "hover:ring-neutral-border-strong", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "data-[state=checked]:ring-2 data-[state=checked]:ring-primary-action-default", "disabled:pointer-events-none disabled:opacity-50", "aria-invalid:ring-2 aria-invalid:ring-danger-action-default", className), ...props, children: [_jsx(RadioGroupPrimitive.Indicator, { "data-slot": "choice-card-indicator", className: "absolute top-4 right-4 flex items-center justify-center", children: _jsx(CircleIcon, { className: "size-4 fill-primary-action-default text-primary-action-default" }) }), _jsxs("div", { className: "flex w-full items-start gap-2 pr-6", children: [Icon ? (_jsx(Icon, { "aria-hidden": true, className: "size-5 shrink-0 text-neutral-foreground-strong" })) : null, badge ? _jsx("span", { className: "ml-auto", children: badge }) : null] }), _jsx("span", { id: titleId, className: "pr-6 font-medium text-neutral-foreground-strong", children: title }), description ? (_jsx("span", { id: descId, className: typographyVariants({ variant: "body-subtle" }), children: description })) : null] }));
|
|
30
30
|
}
|
|
31
31
|
const ChoiceCard = withRef(ChoiceCardImpl);
|
|
32
32
|
export { ChoiceCardGroup, ChoiceCard };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice-card.js","sourceRoot":"","sources":["../../../../src/components/ui/choice-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,uBAAuB,GAAG,GAAG,CAAC,YAAY,EAAE;IAChD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,CAAC,EAAE,aAAa;YAChB,CAAC,EAAE,4BAA4B;YAC/B,CAAC,EAAE,4BAA4B;YAC/B,CAAC,EAAE,2CAA2C;SAC/C;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;CAChC,CAAC,CAAC;AAQH,SAAS,mBAAmB,CAAC,EAC3B,GAAG,EACH,SAAS,EACT,OAAO,GAAG,CAAC,EACX,GAAG,KAAK,EACmD;IAC3D,OAAO,CACL,KAAC,mBAAmB,CAAC,IAAI,IACvB,GAAG,EAAE,GAAG,eACE,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,CAC7B,mBAAmB,CACpB,CAAC;AAaF,SAAS,cAAc,CAAC,EACtB,GAAG,EACH,SAAS,EACT,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAI,EAAE,IAAI,EACV,KAAK,EACL,GAAG,KAAK,EACiD;IACzD,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC;IAC5B,OAAO,CACL,MAAC,mBAAmB,CAAC,IAAI,IACvB,GAAG,EAAE,GAAG,eACE,aAAa,EACvB,KAAK,EAAE,KAAK,qBACK,OAAO,sBACN,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAClD,SAAS,EAAE,EAAE,CACX,gLAAgL,EAChL,kCAAkC,EAClC,
|
|
1
|
+
{"version":3,"file":"choice-card.js","sourceRoot":"","sources":["../../../../src/components/ui/choice-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,uBAAuB,GAAG,GAAG,CAAC,YAAY,EAAE;IAChD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,CAAC,EAAE,aAAa;YAChB,CAAC,EAAE,4BAA4B;YAC/B,CAAC,EAAE,4BAA4B;YAC/B,CAAC,EAAE,2CAA2C;SAC/C;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;CAChC,CAAC,CAAC;AAQH,SAAS,mBAAmB,CAAC,EAC3B,GAAG,EACH,SAAS,EACT,OAAO,GAAG,CAAC,EACX,GAAG,KAAK,EACmD;IAC3D,OAAO,CACL,KAAC,mBAAmB,CAAC,IAAI,IACvB,GAAG,EAAE,GAAG,eACE,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,CAC7B,mBAAmB,CACpB,CAAC;AAaF,SAAS,cAAc,CAAC,EACtB,GAAG,EACH,SAAS,EACT,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAI,EAAE,IAAI,EACV,KAAK,EACL,GAAG,KAAK,EACiD;IACzD,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC;IAC5B,OAAO,CACL,MAAC,mBAAmB,CAAC,IAAI,IACvB,GAAG,EAAE,GAAG,eACE,aAAa,EACvB,KAAK,EAAE,KAAK,qBACK,OAAO,sBACN,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAClD,SAAS,EAAE,EAAE,CACX,gLAAgL,EAChL,kCAAkC,EAClC,yEAAyE,EACzE,8EAA8E,EAC9E,kDAAkD,EAClD,6DAA6D,EAC7D,SAAS,CACV,KACG,KAAK,aAET,KAAC,mBAAmB,CAAC,SAAS,iBAClB,uBAAuB,EACjC,SAAS,EAAC,yDAAyD,YAEnE,KAAC,UAAU,IAAC,SAAS,EAAC,gEAAgE,GAAG,GAC3D,EAChC,eAAK,SAAS,EAAC,oCAAoC,aAChD,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,IAAI,yBAEH,SAAS,EAAC,gDAAgD,GAC1D,CACH,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACpD,EACN,eACE,EAAE,EAAE,OAAO,EACX,SAAS,EAAC,iDAAiD,YAE1D,KAAK,GACD,EACN,WAAW,CAAC,CAAC,CAAC,CACb,eACE,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,YAExD,WAAW,GACP,CACR,CAAC,CAAC,CAAC,IAAI,IACiB,CAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAqC,cAAc,CAAC,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -4,24 +4,46 @@ export interface ComboboxOption {
|
|
|
4
4
|
value: string;
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
}
|
|
7
|
-
export interface ComboboxProps {
|
|
7
|
+
export interface ComboboxProps extends Omit<React.ComponentProps<"button">, "onChange" | "value" | "defaultValue" | "children" | "type"> {
|
|
8
8
|
options: ComboboxOption[];
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Controlled selected value. Normally one of `options[].value`; when
|
|
11
|
+
* `allowCustomValue` is true it may also be a free-text string that
|
|
12
|
+
* matches no option (a previously committed custom value).
|
|
13
|
+
*/
|
|
10
14
|
value?: string;
|
|
11
15
|
/** Initial selected value for uncontrolled usage. */
|
|
12
16
|
defaultValue?: string;
|
|
13
17
|
onValueChange?: (value: string | undefined) => void;
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Fires on every keystroke in the search input with the raw typed text,
|
|
20
|
+
* regardless of whether it matches an option and independent of
|
|
21
|
+
* `allowCustomValue`.
|
|
22
|
+
*/
|
|
23
|
+
onInputChange?: (inputValue: string) => void;
|
|
24
|
+
/**
|
|
25
|
+
* When true, typed text that matches no option can be committed as the
|
|
26
|
+
* value itself: Enter with no option highlighted commits it, and moving
|
|
27
|
+
* focus away (blur) with unsaved typed text commits it too instead of
|
|
28
|
+
* reverting. Escape always discards, regardless of this flag.
|
|
29
|
+
*/
|
|
30
|
+
allowCustomValue?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Preferred side the popover opens on — maps 1:1 onto the underlying
|
|
33
|
+
* `PopoverPrimitive.Content`'s `side` prop. Radix's own collision
|
|
34
|
+
* avoidance still auto-flips when there isn't enough viewport room.
|
|
35
|
+
*/
|
|
36
|
+
direction?: "bottom" | "top";
|
|
16
37
|
/**
|
|
17
38
|
* Custom sort function applied to options before rendering.
|
|
18
39
|
* Defaults to alphabetical ascending by label.
|
|
19
40
|
* Pass `() => 0` to preserve the original array order.
|
|
20
41
|
*/
|
|
21
42
|
sortFn?: (a: ComboboxOption, b: ComboboxOption) => number;
|
|
43
|
+
placeholder?: string;
|
|
44
|
+
searchPlaceholder?: string;
|
|
22
45
|
emptyIndicator?: React.ReactNode;
|
|
23
46
|
size?: "default" | "sm";
|
|
24
|
-
disabled?: boolean;
|
|
25
47
|
/**
|
|
26
48
|
* Virtualizes the option list using @tanstack/react-virtual.
|
|
27
49
|
*
|
|
@@ -34,11 +56,7 @@ export interface ComboboxProps {
|
|
|
34
56
|
* Arrow-key nav works only within the currently visible viewport, not the full list.
|
|
35
57
|
*/
|
|
36
58
|
virtualized?: boolean;
|
|
37
|
-
id?: string;
|
|
38
|
-
className?: string;
|
|
39
|
-
"aria-label"?: string;
|
|
40
|
-
"aria-labelledby"?: string;
|
|
41
59
|
}
|
|
42
|
-
declare function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, sortFn, emptyIndicator, size, disabled, virtualized,
|
|
60
|
+
declare function Combobox({ options, value: controlledValue, defaultValue, onValueChange, onInputChange, allowCustomValue, direction, placeholder, searchPlaceholder, sortFn, emptyIndicator, size, disabled, virtualized, className, ...rest }: ComboboxProps): React.JSX.Element;
|
|
43
61
|
export { Combobox };
|
|
44
62
|
//# sourceMappingURL=combobox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAC9B,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,CAC5D;IACC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA2KD,iBAAS,QAAQ,CAAC,EAChB,OAAO,EACP,KAAK,EAAE,eAAe,EACtB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAwB,EACxB,SAAoB,EACpB,WAAiC,EACjC,iBAA6B,EAC7B,MAAsB,EACtB,cAAc,EACd,IAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,aAAa,qBAiPf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -10,9 +10,15 @@ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, Command
|
|
|
10
10
|
const ITEM_HEIGHT = 32;
|
|
11
11
|
const MAX_LIST_HEIGHT = 256;
|
|
12
12
|
const defaultSortFn = (a, b) => a.label.localeCompare(b.label);
|
|
13
|
+
function defaultEmptyIndicator(allowCustomValue, query) {
|
|
14
|
+
const trimmed = query.trim();
|
|
15
|
+
return allowCustomValue && trimmed
|
|
16
|
+
? `Press Enter to use "${trimmed}"`
|
|
17
|
+
: "No results found";
|
|
18
|
+
}
|
|
13
19
|
// Mounted only when popover is open. Arrow-key nav is limited to DOM-visible items;
|
|
14
20
|
// primary UX is type-to-filter + click/Enter. Does not depend on cmdk.
|
|
15
|
-
function VirtualList({ items, selectedValue, filterValue, onFilterChange, onSelect, searchPlaceholder, emptyIndicator, }) {
|
|
21
|
+
function VirtualList({ items, selectedValue, filterValue, onFilterChange, onSelect, allowCustomValue, onCommitCustomValue, searchPlaceholder, emptyIndicator, }) {
|
|
16
22
|
const inputRef = React.useRef(null);
|
|
17
23
|
React.useEffect(() => {
|
|
18
24
|
inputRef.current?.focus();
|
|
@@ -29,7 +35,24 @@ function VirtualList({ items, selectedValue, filterValue, onFilterChange, onSele
|
|
|
29
35
|
overscan: 5,
|
|
30
36
|
});
|
|
31
37
|
const listHeight = Math.min(filtered.length * ITEM_HEIGHT, MAX_LIST_HEIGHT);
|
|
32
|
-
|
|
38
|
+
function handleInputKeyDown(e) {
|
|
39
|
+
if (e.key === "Tab") {
|
|
40
|
+
// See the equivalent guard in Combobox's handleCommandKeyDown: Radix's
|
|
41
|
+
// FocusScope loop-traps Tab at the boundary, which is every press when
|
|
42
|
+
// the search input is the sole tabbable descendant (zero filtered
|
|
43
|
+
// items). Step out of the way so focus can actually leave.
|
|
44
|
+
e.stopPropagation();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (e.key === "Enter" &&
|
|
48
|
+
allowCustomValue &&
|
|
49
|
+
filtered.length === 0 &&
|
|
50
|
+
filterValue.trim().length > 0) {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
onCommitCustomValue(filterValue);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return (_jsxs("div", { className: "flex flex-col", children: [_jsx("div", { className: "border-b px-3", children: _jsx("input", { ref: inputRef, className: "h-9 w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground", placeholder: searchPlaceholder ?? "Search…", value: filterValue, onChange: (e) => onFilterChange(e.target.value), onKeyDown: handleInputKeyDown, "aria-label": searchPlaceholder ?? "Search" }) }), filtered.length === 0 ? (_jsx("p", { className: "py-5 text-center text-sm text-muted-foreground", children: emptyIndicator })) : (_jsx("div", { ref: listRef, style: { height: listHeight, overflowY: "auto" }, role: "listbox", children: _jsx("div", { style: { height: virtualizer.getTotalSize(), position: "relative" }, children: virtualizer.getVirtualItems().map((vItem) => {
|
|
33
56
|
const option = filtered[vItem.index];
|
|
34
57
|
const isSelected = option.value === selectedValue;
|
|
35
58
|
return (_jsxs("div", { role: "option", "aria-selected": isSelected, "aria-disabled": option.disabled, tabIndex: option.disabled ? -1 : 0, style: {
|
|
@@ -51,7 +74,7 @@ function VirtualList({ items, selectedValue, filterValue, onFilterChange, onSele
|
|
|
51
74
|
}, children: [_jsx(CheckIcon, { className: cn("size-4 shrink-0", isSelected ? "opacity-100" : "opacity-0"), "aria-hidden": "true" }), option.label] }, vItem.key));
|
|
52
75
|
}) }) }))] }));
|
|
53
76
|
}
|
|
54
|
-
function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select an option…", searchPlaceholder = "Search…", sortFn = defaultSortFn, emptyIndicator, size = "default", disabled = false, virtualized = false,
|
|
77
|
+
function Combobox({ options, value: controlledValue, defaultValue, onValueChange, onInputChange, allowCustomValue = false, direction = "bottom", placeholder = "Select an option…", searchPlaceholder = "Search…", sortFn = defaultSortFn, emptyIndicator, size = "default", disabled = false, virtualized = false, className, ...rest }) {
|
|
55
78
|
if (process.env.NODE_ENV === "development" &&
|
|
56
79
|
!virtualized &&
|
|
57
80
|
options.length > 500) {
|
|
@@ -60,17 +83,72 @@ function Combobox({ options, value: controlledValue, defaultValue, onValueChange
|
|
|
60
83
|
}
|
|
61
84
|
const [open, setOpen] = React.useState(false);
|
|
62
85
|
const [internalValue, setInternalValue] = React.useState(defaultValue);
|
|
63
|
-
// Used only when virtualized=true; cmdk manages its own filter state otherwise.
|
|
64
86
|
const [filterValue, setFilterValue] = React.useState("");
|
|
87
|
+
// Escape and blur both close the popover through the same onOpenChange
|
|
88
|
+
// path — this ref is what lets handleOpenChange tell an intentional
|
|
89
|
+
// discard (Escape) apart from a commit-on-dismiss (blur/outside click).
|
|
90
|
+
const isEscapingRef = React.useRef(false);
|
|
91
|
+
// Radix's own Escape handling listens on `document` in the CAPTURE phase
|
|
92
|
+
// (see @radix-ui/react-use-escape-keydown), which always runs before any
|
|
93
|
+
// bubble-phase onKeyDown further down the tree (e.g. on Command or the
|
|
94
|
+
// virtualized input) can react. A `window` capture-phase listener is the
|
|
95
|
+
// only place guaranteed to observe Escape before Radix's own listener and
|
|
96
|
+
// set the flag in time for handleOpenChange to read it.
|
|
97
|
+
React.useEffect(() => {
|
|
98
|
+
if (!open)
|
|
99
|
+
return;
|
|
100
|
+
function handleWindowKeyDown(e) {
|
|
101
|
+
if (e.key === "Escape")
|
|
102
|
+
isEscapingRef.current = true;
|
|
103
|
+
}
|
|
104
|
+
window.addEventListener("keydown", handleWindowKeyDown, { capture: true });
|
|
105
|
+
return () => window.removeEventListener("keydown", handleWindowKeyDown, {
|
|
106
|
+
capture: true,
|
|
107
|
+
});
|
|
108
|
+
}, [open]);
|
|
65
109
|
const isControlled = controlledValue !== undefined;
|
|
66
110
|
const selected = isControlled ? controlledValue : internalValue;
|
|
67
111
|
const sorted = React.useMemo(() => [...options].sort(sortFn), [options, sortFn]);
|
|
68
112
|
const selectedOption = sorted.find((o) => o.value === selected);
|
|
113
|
+
// `selected` is empty string, not just `undefined`, for the "nothing
|
|
114
|
+
// selected yet" case in controlled usages that follow the
|
|
115
|
+
// `value ?? ""` pattern (this component's own flagship example) — an
|
|
116
|
+
// empty string must NOT be treated as a committed custom value, or the
|
|
117
|
+
// trigger renders blank instead of the placeholder on first render.
|
|
118
|
+
const isCustomValue = Boolean(allowCustomValue && selected && !selectedOption);
|
|
119
|
+
const hasValue = Boolean(selectedOption) || isCustomValue;
|
|
120
|
+
const triggerLabel = selectedOption?.label ?? (isCustomValue ? selected : placeholder);
|
|
121
|
+
const filteredCount = React.useMemo(() => {
|
|
122
|
+
if (!filterValue)
|
|
123
|
+
return sorted.length;
|
|
124
|
+
const query = filterValue.toLowerCase();
|
|
125
|
+
return sorted.filter((o) => o.label.toLowerCase().includes(query)).length;
|
|
126
|
+
}, [sorted, filterValue]);
|
|
127
|
+
const resolvedEmptyIndicator = emptyIndicator ?? defaultEmptyIndicator(allowCustomValue, filterValue);
|
|
128
|
+
function commitValue(next) {
|
|
129
|
+
if (!isControlled)
|
|
130
|
+
setInternalValue(next);
|
|
131
|
+
onValueChange?.(next);
|
|
132
|
+
}
|
|
133
|
+
function handleInputChange(next) {
|
|
134
|
+
setFilterValue(next);
|
|
135
|
+
onInputChange?.(next);
|
|
136
|
+
}
|
|
69
137
|
function handleOpenChange(nextOpen) {
|
|
70
138
|
if (disabled)
|
|
71
139
|
return;
|
|
72
|
-
if (!nextOpen)
|
|
140
|
+
if (!nextOpen) {
|
|
141
|
+
if (isEscapingRef.current) {
|
|
142
|
+
isEscapingRef.current = false;
|
|
143
|
+
}
|
|
144
|
+
else if (allowCustomValue && filterValue && filterValue !== selected) {
|
|
145
|
+
commitValue(filterValue);
|
|
146
|
+
}
|
|
73
147
|
setFilterValue("");
|
|
148
|
+
}
|
|
149
|
+
else if (isCustomValue && selected !== undefined) {
|
|
150
|
+
setFilterValue(selected);
|
|
151
|
+
}
|
|
74
152
|
setOpen(nextOpen);
|
|
75
153
|
}
|
|
76
154
|
function handleSelect(optionValue) {
|
|
@@ -81,14 +159,39 @@ function Combobox({ options, value: controlledValue, defaultValue, onValueChange
|
|
|
81
159
|
setOpen(false);
|
|
82
160
|
setFilterValue("");
|
|
83
161
|
}
|
|
84
|
-
|
|
162
|
+
function handleCommitCustomValue(text) {
|
|
163
|
+
commitValue(text);
|
|
164
|
+
setOpen(false);
|
|
165
|
+
setFilterValue("");
|
|
166
|
+
}
|
|
167
|
+
function handleCommandKeyDown(e) {
|
|
168
|
+
if (e.key === "Tab") {
|
|
169
|
+
// Radix's Popover.Content FocusScope sets `loop: true` even when
|
|
170
|
+
// non-modal, which re-traps Tab at the boundary. With zero filtered
|
|
171
|
+
// options the search input is both the first and last tabbable
|
|
172
|
+
// descendant, so every Tab press gets swallowed and focus can never
|
|
173
|
+
// leave — a keyboard trap. Stepping out of the way lets the browser's
|
|
174
|
+
// native Tab move focus out, and Radix's separate onFocusOutside
|
|
175
|
+
// handling (unaffected by this) still closes the popover normally.
|
|
176
|
+
e.stopPropagation();
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (e.key === "Enter" &&
|
|
180
|
+
allowCustomValue &&
|
|
181
|
+
filteredCount === 0 &&
|
|
182
|
+
filterValue.trim().length > 0) {
|
|
183
|
+
e.preventDefault();
|
|
184
|
+
handleCommitCustomValue(filterValue);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return (_jsxs(PopoverPrimitive.Root, { open: open, onOpenChange: handleOpenChange, children: [_jsx(PopoverPrimitive.Trigger, { asChild: true, children: _jsxs("button", { ...rest, "data-slot": "combobox", "data-size": size, type: "button", role: "combobox", "aria-expanded": open, "aria-haspopup": "listbox", "aria-disabled": disabled ? "true" : undefined, disabled: disabled, className: cn("flex w-fit min-w-0 items-center justify-between gap-2 rounded-lg border border-input bg-input-background px-3 py-2 text-sm whitespace-nowrap transition-all duration-200 outline-none select-none", "focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/20 dark:focus-visible:ring-ring/40", "disabled:cursor-not-allowed disabled:opacity-50", "aria-invalid:border-danger-action-default aria-invalid:ring-3 aria-invalid:ring-danger-action-default/20 dark:aria-invalid:border-danger-action-default/50 dark:aria-invalid:ring-danger-action-default/40", "data-[size=default]:h-9 data-[size=sm]:h-8", !hasValue && "text-muted-foreground", className), children: [_jsx("span", { className: "truncate", children: triggerLabel }), _jsx(ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 opacity-50", "aria-hidden": "true" })] }) }), _jsx(PopoverPrimitive.Portal, { children: _jsx(C4Provider, { children: _jsx(PopoverPrimitive.Content, { "data-slot": "combobox-content", align: "start", side: direction, sideOffset: 4, className: cn("z-50 w-[--radix-popover-trigger-width] p-0 rounded-lg border border-input bg-popover text-popover-foreground shadow-md ring-1 ring-border outline-hidden", "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", "data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95", "data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95"), children: virtualized ? (open && (_jsx(VirtualList, { items: sorted, selectedValue: selected, filterValue: filterValue, onFilterChange: handleInputChange, onSelect: handleSelect, allowCustomValue: allowCustomValue, onCommitCustomValue: handleCommitCustomValue, searchPlaceholder: searchPlaceholder, emptyIndicator: resolvedEmptyIndicator }))) : (_jsxs(Command, { onKeyDown: handleCommandKeyDown, filter: (value, search) => {
|
|
85
188
|
const option = sorted.find((o) => o.value === value);
|
|
86
189
|
return option?.label
|
|
87
190
|
.toLowerCase()
|
|
88
191
|
.includes(search.toLowerCase())
|
|
89
192
|
? 1
|
|
90
193
|
: 0;
|
|
91
|
-
}, children: [_jsx(CommandInput, { placeholder: searchPlaceholder, "aria-label": searchPlaceholder }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children:
|
|
194
|
+
}, children: [_jsx(CommandInput, { placeholder: searchPlaceholder, "aria-label": searchPlaceholder, value: filterValue, onValueChange: handleInputChange }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: resolvedEmptyIndicator }), _jsx(CommandGroup, { children: sorted.map((option) => (_jsxs(CommandItem, { value: option.value, disabled: option.disabled, onSelect: handleSelect, className: "gap-2", children: [_jsx(CheckIcon, { className: cn("size-4 shrink-0", selected === option.value
|
|
92
195
|
? "opacity-100"
|
|
93
196
|
: "opacity-0"), "aria-hidden": "true" }), option.label] }, option.value))) })] })] })) }) }) })] }));
|
|
94
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,WAAW,CAAC;AAiEnB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,aAAa,GAAG,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE,CAC7D,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEjC,SAAS,qBAAqB,CAC5B,gBAAyB,EACzB,KAAa;IAEb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,gBAAgB,IAAI,OAAO;QAChC,CAAC,CAAC,uBAAuB,OAAO,GAAG;QACnC,CAAC,CAAC,kBAAkB,CAAC;AACzB,CAAC;AAcD,oFAAoF;AACpF,uEAAuE;AACvE,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACG;IACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEtD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CACH,WAAW;QACT,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAC1D;QACH,CAAC,CAAC,KAAK,EACX,CAAC,KAAK,EAAE,WAAW,CAAC,CACrB,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACnD,4DAA4D;IAC5D,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO;QACvC,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW;QAC/B,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,eAAe,CAAC,CAAC;IAE5E,SAAS,kBAAkB,CAAC,CAAwC;QAClE,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACpB,uEAAuE;YACvE,uEAAuE;YACvE,kEAAkE;YAClE,2DAA2D;YAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IACE,CAAC,CAAC,GAAG,KAAK,OAAO;YACjB,gBAAgB;YAChB,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAC7B,CAAC;YACD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,eAAe,YAC5B,gBACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAC,kFAAkF,EAC5F,WAAW,EAAE,iBAAiB,IAAI,SAAS,EAC3C,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,SAAS,EAAE,kBAAkB,gBACjB,iBAAiB,IAAI,QAAQ,GACzC,GACE,EACL,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,YAAG,SAAS,EAAC,gDAAgD,YAC1D,cAAc,GACb,CACL,CAAC,CAAC,CAAC,CACF,cACE,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EAChD,IAAI,EAAC,SAAS,YAEd,cACE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,YAElE,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC;wBAClD,OAAO,CACL,eAEE,IAAI,EAAC,QAAQ,mBACE,UAAU,mBACV,MAAM,CAAC,QAAQ,EAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE;gCACL,QAAQ,EAAE,UAAU;gCACpB,GAAG,EAAE,CAAC;gCACN,SAAS,EAAE,cAAc,KAAK,CAAC,KAAK,KAAK;gCACzC,MAAM,EAAE,WAAW;gCACnB,KAAK,EAAE,MAAM;6BACd,EACD,SAAS,EAAE,EAAE,CACX,qDAAqD,EACrD,8CAA8C,EAC9C,iEAAiE,EACjE,MAAM,CAAC,QAAQ;gCACb,mDAAmD,CACtD,EACD,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,CAAC,MAAM,CAAC,QAAQ;oCAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC/C,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,IACE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;oCACpC,CAAC,MAAM,CAAC,QAAQ,EAChB,CAAC;oCACD,CAAC,CAAC,cAAc,EAAE,CAAC;oCACnB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gCACzB,CAAC;4BACH,CAAC,aAED,KAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CACzC,iBACW,MAAM,GAClB,EACD,MAAM,CAAC,KAAK,KAvCR,KAAK,CAAC,GAAG,CAwCV,CACP,CAAC;oBACJ,CAAC,CAAC,GACE,GACF,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAChB,OAAO,EACP,KAAK,EAAE,eAAe,EACtB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,GAAG,KAAK,EACxB,SAAS,GAAG,QAAQ,EACpB,WAAW,GAAG,mBAAmB,EACjC,iBAAiB,GAAG,SAAS,EAC7B,MAAM,GAAG,aAAa,EACtB,cAAc,EACd,IAAI,GAAG,SAAS,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,GAAG,IAAI,EACO;IACd,IACE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;QACtC,CAAC,WAAW;QACZ,OAAO,CAAC,MAAM,GAAG,GAAG,EACpB,CAAC;QACD,OAAO,CAAC,IAAI,CACV,aAAa,OAAO,CAAC,MAAM,8CAA8C;YACvE,mDAAmD,CACtD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CACtD,YAAY,CACb,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,uEAAuE;IACvE,oEAAoE;IACpE,wEAAwE;IACxE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1C,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,wDAAwD;IACxD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,SAAS,mBAAmB,CAAC,CAAgB;YAC3C,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QACvD,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,mBAAmB,EAAE;YACzD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS,CAAC;IACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;IAEhE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IAChE,qEAAqE;IACrE,0DAA0D;IAC1D,qEAAqE;IACrE,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,aAAa,GAAG,OAAO,CAC3B,gBAAgB,IAAI,QAAQ,IAAI,CAAC,cAAc,CAChD,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC;IAC1D,MAAM,YAAY,GAChB,cAAc,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,WAAW;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1B,MAAM,sBAAsB,GAC1B,cAAc,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAEzE,SAAS,WAAW,CAAC,IAAY;QAC/B,IAAI,CAAC,YAAY;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAY;QACrC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,SAAS,gBAAgB,CAAC,QAAiB;QACzC,IAAI,QAAQ;YAAE,OAAO;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;YAChC,CAAC;iBAAM,IAAI,gBAAgB,IAAI,WAAW,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACvE,WAAW,CAAC,WAAW,CAAC,CAAC;YAC3B,CAAC;YACD,cAAc,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,aAAa,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnD,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,YAAY,CAAC,WAAmB;QACvC,MAAM,IAAI,GAAG,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QAChE,IAAI,CAAC,YAAY;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,uBAAuB,CAAC,IAAY;QAC3C,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,oBAAoB,CAAC,CAAsB;QAClD,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACpB,iEAAiE;YACjE,oEAAoE;YACpE,+DAA+D;YAC/D,oEAAoE;YACpE,sEAAsE;YACtE,iEAAiE;YACjE,mEAAmE;YACnE,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IACE,CAAC,CAAC,GAAG,KAAK,OAAO;YACjB,gBAAgB;YAChB,aAAa,KAAK,CAAC;YACnB,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAC7B,CAAC;YACD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,CACL,MAAC,gBAAgB,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,aAC/D,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAC/B,qBACM,IAAI,eACE,UAAU,eACT,IAAI,EACf,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,mBACA,IAAI,mBACL,SAAS,mBACR,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC5C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,mMAAmM,EACnM,2GAA2G,EAC3G,iDAAiD,EACjD,4MAA4M,EAC5M,4CAA4C,EAC5C,CAAC,QAAQ,IAAI,uBAAuB,EACpC,SAAS,CACV,aAED,eAAM,SAAS,EAAC,UAAU,YAAE,YAAY,GAAQ,EAChD,KAAC,eAAe,IACd,SAAS,EAAC,gDAAgD,iBAC9C,MAAM,GAClB,IACK,GACgB,EAE3B,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,UAAU,cACT,KAAC,gBAAgB,CAAC,OAAO,iBACb,kBAAkB,EAC5B,KAAK,EAAC,OAAO,EACb,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,CAAC,EACb,SAAS,EAAE,EAAE,CACX,0JAA0J,EAC1J,6JAA6J,EAC7J,+DAA+D,EAC/D,wEAAwE,CACzE,YAEA,WAAW,CAAC,CAAC,CAAC,CACb,IAAI,IAAI,CACN,KAAC,WAAW,IACV,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,QAAQ,EACvB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,iBAAiB,EACjC,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,uBAAuB,EAC5C,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,sBAAsB,GACtC,CACH,CACF,CAAC,CAAC,CAAC,CACF,MAAC,OAAO,IACN,SAAS,EAAE,oBAAoB,EAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gCACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;gCACrD,OAAO,MAAM,EAAE,KAAK;qCACjB,WAAW,EAAE;qCACb,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oCAC/B,CAAC,CAAC,CAAC;oCACH,CAAC,CAAC,CAAC,CAAC;4BACR,CAAC,aAED,KAAC,YAAY,IACX,WAAW,EAAE,iBAAiB,gBAClB,iBAAiB,EAC7B,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,iBAAiB,GAChC,EACF,MAAC,WAAW,eACV,KAAC,YAAY,cAAE,sBAAsB,GAAgB,EACrD,KAAC,YAAY,cACV,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACtB,MAAC,WAAW,IAEV,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,OAAO,aAEjB,KAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB,QAAQ,KAAK,MAAM,CAAC,KAAK;4DACvB,CAAC,CAAC,aAAa;4DACf,CAAC,CAAC,WAAW,CAChB,iBACW,MAAM,GAClB,EACD,MAAM,CAAC,KAAK,KAfR,MAAM,CAAC,KAAK,CAgBL,CACf,CAAC,GACW,IACH,IACN,CACX,GACwB,GAChB,GACW,IACJ,CACzB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|