@inf-monkeys-tech/monkeys-design 1.0.56 → 1.0.60

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.
@@ -0,0 +1,360 @@
1
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
2
+ import { ChevronDown, Search, Circle, Check } from 'lucide-react';
3
+ import { forwardRef, useMemo, useId, useRef, useState, useEffect } from 'react';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+
7
+ // src/components/dropdown/UnifiedDropdown.tsx
8
+ function cn(...parts) {
9
+ return twMerge(parts.filter(Boolean).join(" "));
10
+ }
11
+ var placementMap = {
12
+ "bottom-start": { side: "bottom", align: "start" },
13
+ "bottom-end": { side: "bottom", align: "end" },
14
+ "top-start": { side: "top", align: "start" },
15
+ "top-end": { side: "top", align: "end" }
16
+ };
17
+ function flattenOptions(options, depth = 0) {
18
+ return options.flatMap((option) => [
19
+ { ...option, depth },
20
+ ...option.children ? flattenOptions(option.children, depth + 1) : []
21
+ ]);
22
+ }
23
+ function validateOptions(options) {
24
+ const values = /* @__PURE__ */ new Set();
25
+ flattenOptions(options).forEach((option) => {
26
+ if (!option || typeof option !== "object") {
27
+ throw new TypeError("UnifiedDropdown options must contain objects.");
28
+ }
29
+ if (typeof option.value !== "string" || !option.value.trim()) {
30
+ throw new TypeError("UnifiedDropdown option value must be a non-empty string.");
31
+ }
32
+ if (values.has(option.value)) {
33
+ throw new TypeError(`UnifiedDropdown option value "${option.value}" must be unique.`);
34
+ }
35
+ values.add(option.value);
36
+ });
37
+ }
38
+ function normalizeValues(value) {
39
+ const values = Array.isArray(value) ? value : value === void 0 ? [] : [value];
40
+ return [...new Set(values.filter((item) => typeof item === "string"))];
41
+ }
42
+ function getOptionText(option) {
43
+ if (option.textValue) return option.textValue;
44
+ return typeof option.label === "string" ? option.label : option.value;
45
+ }
46
+ function isMultiMode(mode) {
47
+ return mode === "multi" || mode === "checkbox";
48
+ }
49
+ function matchesSearch(option, query) {
50
+ return getOptionText(option).toLocaleLowerCase().includes(query.toLocaleLowerCase());
51
+ }
52
+ function validateValueShape(mode, value, name) {
53
+ if (value === void 0) return;
54
+ if (isMultiMode(mode) ? !Array.isArray(value) : typeof value !== "string") {
55
+ throw new TypeError(
56
+ `UnifiedDropdown ${name} must be ${isMultiMode(mode) ? "a string array" : "a string"} in ${mode} mode.`
57
+ );
58
+ }
59
+ }
60
+ var UnifiedDropdown = forwardRef(
61
+ function UnifiedDropdown2({
62
+ mode,
63
+ options = [],
64
+ groups = [],
65
+ value,
66
+ defaultValue,
67
+ placeholder = "Select\u2026",
68
+ trigger,
69
+ triggerLabel,
70
+ searchPlaceholder = "Search\u2026",
71
+ emptyLabel = "No options",
72
+ loadingLabel = "Loading\u2026",
73
+ clearLabel = "Clear selection",
74
+ retryLabel = "Retry",
75
+ loading = false,
76
+ error,
77
+ searchable = mode === "searchable",
78
+ clearable = false,
79
+ maxSelections,
80
+ disabled = false,
81
+ invalid = false,
82
+ open: controlledOpen,
83
+ defaultOpen = false,
84
+ placement = "bottom-start",
85
+ closeOnSelect = mode !== "multi" && mode !== "checkbox",
86
+ portal = true,
87
+ size = "default",
88
+ width = "trigger",
89
+ appearance,
90
+ className,
91
+ classNames,
92
+ slots,
93
+ style,
94
+ onOpenChange,
95
+ onValueChange,
96
+ onSelect,
97
+ onAction,
98
+ onClear,
99
+ onRetry,
100
+ ...rootProps
101
+ }, ref) {
102
+ if (!["single", "multi", "searchable", "radio", "checkbox", "tree", "action"].includes(mode)) {
103
+ throw new TypeError(`UnifiedDropdown mode "${String(mode)}" is not supported.`);
104
+ }
105
+ const groupedOptions = useMemo(
106
+ () => groups.reduce((result, group) => {
107
+ const groupName = typeof group.label === "string" ? group.label : group.value;
108
+ result.push(...group.options.map((option) => ({ ...option, group: option.group ?? groupName })));
109
+ return result;
110
+ }, [...options]),
111
+ [groups, options]
112
+ );
113
+ validateOptions(groupedOptions);
114
+ if (maxSelections !== void 0 && (!Number.isFinite(maxSelections) || maxSelections < 0)) {
115
+ throw new TypeError("UnifiedDropdown maxSelections must be a non-negative finite number.");
116
+ }
117
+ if (mode === "action" && (value !== void 0 || defaultValue !== void 0)) {
118
+ throw new TypeError("UnifiedDropdown action mode does not accept a value.");
119
+ }
120
+ if (mode !== "action") {
121
+ validateValueShape(mode, value, "value");
122
+ validateValueShape(mode, defaultValue, "defaultValue");
123
+ }
124
+ const id = useId();
125
+ const triggerId = `${id}-trigger`;
126
+ const listId = `${id}-listbox`;
127
+ const searchId = `${id}-search`;
128
+ const triggerRef = useRef(null);
129
+ const itemRefs = useRef([]);
130
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
131
+ const [uncontrolledValue, setUncontrolledValue] = useState(
132
+ defaultValue ?? (isMultiMode(mode) ? [] : "")
133
+ );
134
+ const [query, setQuery] = useState("");
135
+ const [activeIndex, setActiveIndex] = useState(0);
136
+ const isControlled = controlledOpen !== void 0;
137
+ const open = isControlled ? controlledOpen : uncontrolledOpen;
138
+ const selectedValues = normalizeValues(value ?? uncontrolledValue);
139
+ const flattened = useMemo(() => flattenOptions(groupedOptions), [groupedOptions]);
140
+ const visibleOptions = useMemo(
141
+ () => searchable ? flattened.filter((option) => matchesSearch(option, query)) : flattened,
142
+ [flattened, query, searchable]
143
+ );
144
+ const selectedSet = useMemo(() => new Set(selectedValues), [selectedValues]);
145
+ const selectedOptions = flattened.filter((option) => selectedSet.has(option.value));
146
+ const selectedLabel = selectedOptions.map(getOptionText).join(", ");
147
+ const resolvedTriggerLabel = triggerLabel ?? (selectedLabel || placeholder);
148
+ const isPlaceholder = selectedOptions.length === 0 && !triggerLabel;
149
+ const { side, align } = placementMap[placement];
150
+ const isMenu = mode === "action";
151
+ const usesCheckedMenu = mode === "radio" || mode === "checkbox";
152
+ const contentRole = isMenu || usesCheckedMenu ? "menu" : "listbox";
153
+ useEffect(() => {
154
+ if (open) setActiveIndex(0);
155
+ }, [open, query]);
156
+ const setOpen = (nextOpen) => {
157
+ if (disabled) return;
158
+ if (!isControlled) setUncontrolledOpen(nextOpen);
159
+ onOpenChange?.(nextOpen);
160
+ };
161
+ const commitValue = (nextValue) => {
162
+ if (value === void 0) setUncontrolledValue(nextValue);
163
+ onValueChange?.(nextValue);
164
+ };
165
+ const selectOption = (option) => {
166
+ if (disabled || option.disabled) return;
167
+ onSelect?.(option);
168
+ if (mode === "action") {
169
+ if (closeOnSelect) setOpen(false);
170
+ if (onAction) queueMicrotask(() => onAction(option));
171
+ return;
172
+ }
173
+ if (isMultiMode(mode)) {
174
+ const nextValues = selectedSet.has(option.value) ? selectedValues.filter((item) => item !== option.value) : maxSelections !== void 0 && selectedValues.length >= maxSelections ? selectedValues : [...selectedValues, option.value];
175
+ commitValue(nextValues);
176
+ } else {
177
+ commitValue(option.value);
178
+ }
179
+ if (closeOnSelect && !isMultiMode(mode)) setOpen(false);
180
+ };
181
+ const handleTriggerKeyDown = (event) => {
182
+ if (disabled) return;
183
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
184
+ event.preventDefault();
185
+ if (!open) setOpen(true);
186
+ const direction = event.key === "ArrowDown" ? 1 : -1;
187
+ setActiveIndex((index) => Math.max(0, Math.min(visibleOptions.length - 1, index + direction)));
188
+ }
189
+ };
190
+ const handleContentKeyDown = (event) => {
191
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
192
+ event.preventDefault();
193
+ const direction = event.key === "ArrowDown" ? 1 : -1;
194
+ setActiveIndex((index) => {
195
+ const next = index + direction;
196
+ return Math.max(0, Math.min(visibleOptions.length - 1, next));
197
+ });
198
+ }
199
+ if (event.key === "Enter" && visibleOptions[activeIndex]) {
200
+ event.preventDefault();
201
+ selectOption(visibleOptions[activeIndex]);
202
+ }
203
+ };
204
+ useEffect(() => {
205
+ if (!open) return;
206
+ itemRefs.current[activeIndex]?.scrollIntoView({ block: "nearest" });
207
+ }, [activeIndex, open]);
208
+ const clearSelection = () => {
209
+ commitValue(isMultiMode(mode) ? [] : "");
210
+ onClear?.();
211
+ };
212
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs(
213
+ "div",
214
+ {
215
+ ...rootProps,
216
+ ref,
217
+ className: cn("relative inline-flex min-w-0", className),
218
+ style,
219
+ "data-monkeys-component": "unified-dropdown",
220
+ "data-mode": mode,
221
+ "data-state": open ? "open" : "closed",
222
+ "data-invalid": invalid || void 0,
223
+ "data-disabled": disabled || void 0,
224
+ "data-appearance-preset": appearance?.preset,
225
+ "data-appearance-variant": appearance?.variant,
226
+ "data-appearance-density": appearance?.density,
227
+ "data-appearance-radius": appearance?.radius,
228
+ children: [
229
+ /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
230
+ "button",
231
+ {
232
+ ref: triggerRef,
233
+ id: triggerId,
234
+ type: "button",
235
+ disabled,
236
+ "aria-expanded": open,
237
+ "aria-haspopup": isMenu || usesCheckedMenu ? "menu" : "listbox",
238
+ "aria-controls": open ? listId : void 0,
239
+ "aria-invalid": invalid || void 0,
240
+ onKeyDown: handleTriggerKeyDown,
241
+ className: cn(
242
+ "flex min-w-0 items-center justify-between gap-2 rounded-md border border-input bg-control-surface px-3 text-left text-sm text-foreground shadow-sm outline-none transition-colors",
243
+ "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-control-surface",
244
+ "disabled:cursor-not-allowed disabled:opacity-50",
245
+ size === "sm" ? "h-8 py-1 text-xs" : "h-10 py-2",
246
+ invalid && "border-destructive focus-visible:ring-destructive",
247
+ width === "responsive" && "w-full sm:w-auto",
248
+ classNames?.trigger
249
+ ),
250
+ children: [
251
+ trigger ? /* @__PURE__ */ jsx("span", { className: "min-w-0 shrink-0", children: trigger }) : null,
252
+ /* @__PURE__ */ jsx("span", { className: cn("min-w-0 flex-1 truncate", isPlaceholder && "text-muted-foreground"), children: resolvedTriggerLabel }),
253
+ /* @__PURE__ */ jsx(ChevronDown, { "aria-hidden": "true", className: "h-4 w-4 shrink-0 opacity-60" })
254
+ ]
255
+ }
256
+ ) }),
257
+ (() => {
258
+ const content = /* @__PURE__ */ jsxs(
259
+ PopoverPrimitive.Content,
260
+ {
261
+ id: listId,
262
+ side,
263
+ align,
264
+ sideOffset: 6,
265
+ collisionPadding: 8,
266
+ avoidCollisions: true,
267
+ onKeyDown: handleContentKeyDown,
268
+ onOpenAutoFocus: (event) => {
269
+ event.preventDefault();
270
+ const target = searchable ? document.getElementById(searchId) : itemRefs.current[0];
271
+ target?.focus();
272
+ },
273
+ tabIndex: -1,
274
+ className: cn(
275
+ "z-50 max-h-[min(24rem,calc(100vh-1rem))] max-w-[calc(100vw-1rem)] overflow-y-auto rounded-md border bg-menu-surface p-1 text-popover-foreground shadow-md outline-none",
276
+ width === "trigger" && "w-[var(--radix-popover-trigger-width)] min-w-[12rem]",
277
+ width === "content" && "min-w-[12rem] max-w-[min(32rem,calc(100vw-1rem))]",
278
+ width === "responsive" && "w-[min(var(--radix-popover-trigger-width),calc(100vw-1rem))] min-w-[12rem]",
279
+ classNames?.content
280
+ ),
281
+ children: [
282
+ searchable ? /* @__PURE__ */ jsxs("div", { className: "relative mb-1", children: [
283
+ /* @__PURE__ */ jsx(Search, { "aria-hidden": "true", className: "pointer-events-none absolute left-2 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
284
+ /* @__PURE__ */ jsx(
285
+ "input",
286
+ {
287
+ id: searchId,
288
+ value: query,
289
+ onChange: (event) => setQuery(event.target.value),
290
+ placeholder: searchPlaceholder,
291
+ "aria-label": searchPlaceholder,
292
+ className: cn("h-9 w-full rounded-sm border-0 bg-transparent pl-8 pr-2 text-sm outline-none ring-0 placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring", classNames?.search)
293
+ }
294
+ )
295
+ ] }) : null,
296
+ clearable && selectedOptions.length > 0 ? /* @__PURE__ */ jsx("button", { type: "button", className: "mb-1 w-full rounded-sm px-2 py-1 text-left text-xs text-muted-foreground hover:bg-accent", onClick: clearSelection, children: clearLabel }) : null,
297
+ loading && visibleOptions.length === 0 ? slots?.loading ? slots.loading() : /* @__PURE__ */ jsx("div", { role: "status", className: cn("px-2 py-6 text-center text-sm text-muted-foreground", classNames?.empty), children: loadingLabel }) : error && visibleOptions.length === 0 ? slots?.error ? slots.error() : /* @__PURE__ */ jsxs("div", { role: "alert", className: cn("px-2 py-6 text-center text-sm text-destructive-text", classNames?.empty), children: [
298
+ error,
299
+ onRetry ? /* @__PURE__ */ jsx("button", { type: "button", className: "mt-2 block w-full text-center text-foreground underline", onClick: onRetry, children: retryLabel }) : null
300
+ ] }) : visibleOptions.length === 0 ? slots?.empty ? slots.empty() : /* @__PURE__ */ jsx("div", { role: "status", className: cn("px-2 py-6 text-center text-sm text-muted-foreground", classNames?.empty), children: emptyLabel }) : /* @__PURE__ */ jsx("div", { role: mode === "tree" ? "tree" : contentRole, "aria-multiselectable": mode === "multi" || void 0, children: visibleOptions.map((option, index) => {
301
+ const selected = selectedSet.has(option.value);
302
+ const indicator = mode === "radio" ? /* @__PURE__ */ jsx(Circle, { "aria-hidden": "true", className: cn("h-3.5 w-3.5", selected && "fill-current") }) : /* @__PURE__ */ jsx(Check, { "aria-hidden": "true", className: "h-4 w-4" });
303
+ return /* @__PURE__ */ jsxs("div", { children: [
304
+ option.group && (index === 0 || visibleOptions[index - 1]?.group !== option.group) ? /* @__PURE__ */ jsx("div", { role: "presentation", className: cn("px-2 pb-1 pt-2 text-xs font-medium text-muted-foreground", classNames?.groupLabel), children: option.group }) : null,
305
+ /* @__PURE__ */ jsxs(
306
+ "button",
307
+ {
308
+ ref: (node) => {
309
+ itemRefs.current[index] = node;
310
+ },
311
+ type: "button",
312
+ role: mode === "tree" ? "treeitem" : mode === "radio" ? "menuitemradio" : mode === "checkbox" ? "menuitemcheckbox" : isMenu ? "menuitem" : "option",
313
+ "aria-level": mode === "tree" ? option.depth + 1 : void 0,
314
+ "aria-selected": !isMenu && !usesCheckedMenu ? selected : void 0,
315
+ "aria-checked": usesCheckedMenu ? selected : void 0,
316
+ disabled: option.disabled,
317
+ "data-highlighted": index === activeIndex || void 0,
318
+ "data-state": selected ? "checked" : "unchecked",
319
+ onMouseEnter: () => setActiveIndex(index),
320
+ onClick: () => selectOption(option),
321
+ className: cn(
322
+ "relative flex min-h-9 w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors",
323
+ "hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground",
324
+ "disabled:pointer-events-none disabled:opacity-50",
325
+ index === activeIndex && "bg-accent text-accent-foreground",
326
+ selected && "font-medium",
327
+ option.danger && "text-destructive-text",
328
+ mode !== "action" && "pl-8",
329
+ classNames?.item
330
+ ),
331
+ style: mode === "tree" ? { paddingInlineStart: `${8 + option.depth * 16}px` } : void 0,
332
+ children: [
333
+ mode !== "action" ? /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-4 w-4 items-center justify-center", children: selected ? indicator : null }) : null,
334
+ slots?.option ? slots.option({ option, selected, highlighted: index === activeIndex }) : /* @__PURE__ */ jsxs(Fragment, { children: [
335
+ option.icon ? /* @__PURE__ */ jsx("span", { className: "shrink-0", children: option.icon }) : null,
336
+ /* @__PURE__ */ jsx("span", { className: cn("min-w-0 flex-1 truncate", classNames?.itemLabel), children: option.label }),
337
+ option.description ? /* @__PURE__ */ jsx("span", { className: cn("max-w-[45%] truncate text-xs text-muted-foreground", classNames?.itemDescription), children: option.description }) : null
338
+ ] })
339
+ ]
340
+ }
341
+ )
342
+ ] }, option.value);
343
+ }) }),
344
+ error && visibleOptions.length > 0 ? /* @__PURE__ */ jsx("div", { role: "status", className: "px-2 py-1 text-xs text-destructive-text", children: error }) : null,
345
+ loading && visibleOptions.length > 0 ? /* @__PURE__ */ jsx("div", { role: "status", className: "px-2 py-1 text-xs text-muted-foreground", children: loadingLabel }) : null,
346
+ slots?.footer ? slots.footer() : null
347
+ ]
348
+ }
349
+ );
350
+ return portal ? /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: content }) : content;
351
+ })()
352
+ ]
353
+ }
354
+ ) });
355
+ }
356
+ );
357
+
358
+ export { UnifiedDropdown };
359
+ //# sourceMappingURL=index.mjs.map
360
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/base/utils.ts","../../../src/components/dropdown/UnifiedDropdown.tsx"],"names":["UnifiedDropdown"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n return twMerge(parts.filter(Boolean).join(' '));\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n\nexport function hasNonEmptyRenderableNode(node: ReactNode) {\n if (typeof node === 'string') return node.trim().length > 0;\n return hasRenderableNode(node);\n}\n","import * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { Check, ChevronDown, Circle, Search } from 'lucide-react';\nimport {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\n\nimport { cn } from '../base/utils';\nimport type {\n UnifiedDropdownMode,\n UnifiedDropdownGroup,\n UnifiedDropdownOption,\n UnifiedDropdownPlacement,\n UnifiedDropdownProps,\n UnifiedDropdownValue,\n} from './types';\n\nconst placementMap: Record<\n UnifiedDropdownPlacement,\n { side: 'top' | 'bottom'; align: 'start' | 'end' }\n> = {\n 'bottom-start': { side: 'bottom', align: 'start' },\n 'bottom-end': { side: 'bottom', align: 'end' },\n 'top-start': { side: 'top', align: 'start' },\n 'top-end': { side: 'top', align: 'end' },\n};\n\nfunction flattenOptions(\n options: readonly UnifiedDropdownOption[],\n depth = 0,\n): Array<UnifiedDropdownOption & { depth: number }> {\n return options.flatMap((option) => [\n { ...option, depth },\n ...(option.children ? flattenOptions(option.children, depth + 1) : []),\n ]);\n}\n\nfunction validateOptions(options: readonly UnifiedDropdownOption[]) {\n const values = new Set<string>();\n flattenOptions(options).forEach((option) => {\n if (!option || typeof option !== 'object') {\n throw new TypeError('UnifiedDropdown options must contain objects.');\n }\n if (typeof option.value !== 'string' || !option.value.trim()) {\n throw new TypeError('UnifiedDropdown option value must be a non-empty string.');\n }\n if (values.has(option.value)) {\n throw new TypeError(`UnifiedDropdown option value \"${option.value}\" must be unique.`);\n }\n values.add(option.value);\n });\n}\n\nfunction normalizeValues(value: UnifiedDropdownValue | undefined) {\n const values = Array.isArray(value) ? value : value === undefined ? [] : [value];\n return [...new Set(values.filter((item): item is string => typeof item === 'string'))];\n}\n\nfunction getOptionText(option: UnifiedDropdownOption) {\n if (option.textValue) return option.textValue;\n return typeof option.label === 'string' ? option.label : option.value;\n}\n\nfunction isMultiMode(mode: UnifiedDropdownMode) {\n return mode === 'multi' || mode === 'checkbox';\n}\n\nfunction matchesSearch(option: UnifiedDropdownOption, query: string) {\n return getOptionText(option).toLocaleLowerCase().includes(query.toLocaleLowerCase());\n}\n\nfunction validateValueShape(\n mode: UnifiedDropdownMode,\n value: UnifiedDropdownValue | undefined,\n name: 'value' | 'defaultValue',\n) {\n if (value === undefined) return;\n if (isMultiMode(mode) ? !Array.isArray(value) : typeof value !== 'string') {\n throw new TypeError(\n `UnifiedDropdown ${name} must be ${isMultiMode(mode) ? 'a string array' : 'a string'} in ${mode} mode.`,\n );\n }\n}\n\nexport const UnifiedDropdown = forwardRef<HTMLDivElement, UnifiedDropdownProps>(\n function UnifiedDropdown(\n {\n mode,\n options = [],\n groups = [],\n value,\n defaultValue,\n placeholder = 'Select…',\n trigger,\n triggerLabel,\n searchPlaceholder = 'Search…',\n emptyLabel = 'No options',\n loadingLabel = 'Loading…',\n clearLabel = 'Clear selection',\n retryLabel = 'Retry',\n loading = false,\n error,\n searchable = mode === 'searchable',\n clearable = false,\n maxSelections,\n disabled = false,\n invalid = false,\n open: controlledOpen,\n defaultOpen = false,\n placement = 'bottom-start',\n closeOnSelect = mode !== 'multi' && mode !== 'checkbox',\n portal = true,\n size = 'default',\n width = 'trigger',\n appearance,\n className,\n classNames,\n slots,\n style,\n onOpenChange,\n onValueChange,\n onSelect,\n onAction,\n onClear,\n onRetry,\n ...rootProps\n },\n ref,\n ) {\n if (!['single', 'multi', 'searchable', 'radio', 'checkbox', 'tree', 'action'].includes(mode)) {\n throw new TypeError(`UnifiedDropdown mode \"${String(mode)}\" is not supported.`);\n }\n const groupedOptions = useMemo(\n () => groups.reduce<UnifiedDropdownOption[]>((result, group: UnifiedDropdownGroup) => {\n const groupName = typeof group.label === 'string' ? group.label : group.value;\n result.push(...group.options.map((option) => ({ ...option, group: option.group ?? groupName })));\n return result;\n }, [...options]),\n [groups, options],\n );\n validateOptions(groupedOptions);\n if (maxSelections !== undefined && (!Number.isFinite(maxSelections) || maxSelections < 0)) {\n throw new TypeError('UnifiedDropdown maxSelections must be a non-negative finite number.');\n }\n if (mode === 'action' && (value !== undefined || defaultValue !== undefined)) {\n throw new TypeError('UnifiedDropdown action mode does not accept a value.');\n }\n if (mode !== 'action') {\n validateValueShape(mode, value, 'value');\n validateValueShape(mode, defaultValue, 'defaultValue');\n }\n\n const id = useId();\n const triggerId = `${id}-trigger`;\n const listId = `${id}-listbox`;\n const searchId = `${id}-search`;\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const itemRefs = useRef<Array<HTMLButtonElement | null>>([]);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [uncontrolledValue, setUncontrolledValue] = useState<UnifiedDropdownValue>(\n defaultValue ?? (isMultiMode(mode) ? [] : ''),\n );\n const [query, setQuery] = useState('');\n const [activeIndex, setActiveIndex] = useState(0);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n const selectedValues = normalizeValues(value ?? uncontrolledValue);\n const flattened = useMemo(() => flattenOptions(groupedOptions), [groupedOptions]);\n const visibleOptions = useMemo(\n () => (searchable ? flattened.filter((option) => matchesSearch(option, query)) : flattened),\n [flattened, query, searchable],\n );\n const selectedSet = useMemo(() => new Set(selectedValues), [selectedValues]);\n const selectedOptions = flattened.filter((option) => selectedSet.has(option.value));\n const selectedLabel = selectedOptions.map(getOptionText).join(', ');\n const resolvedTriggerLabel = triggerLabel ?? (selectedLabel || placeholder);\n const isPlaceholder = selectedOptions.length === 0 && !triggerLabel;\n const { side, align } = placementMap[placement];\n const isMenu = mode === 'action';\n const usesCheckedMenu = mode === 'radio' || mode === 'checkbox';\n const contentRole = isMenu || usesCheckedMenu ? 'menu' : 'listbox';\n\n useEffect(() => {\n if (open) setActiveIndex(0);\n }, [open, query]);\n\n const setOpen = (nextOpen: boolean) => {\n if (disabled) return;\n if (!isControlled) setUncontrolledOpen(nextOpen);\n onOpenChange?.(nextOpen);\n };\n\n const commitValue = (nextValue: UnifiedDropdownValue) => {\n if (value === undefined) setUncontrolledValue(nextValue);\n onValueChange?.(nextValue);\n };\n\n const selectOption = (option: UnifiedDropdownOption) => {\n if (disabled || option.disabled) return;\n onSelect?.(option);\n if (mode === 'action') {\n if (closeOnSelect) setOpen(false);\n if (onAction) queueMicrotask(() => onAction(option));\n return;\n }\n if (isMultiMode(mode)) {\n const nextValues = selectedSet.has(option.value)\n ? selectedValues.filter((item) => item !== option.value)\n : maxSelections !== undefined && selectedValues.length >= maxSelections\n ? selectedValues\n : [...selectedValues, option.value];\n commitValue(nextValues);\n } else {\n commitValue(option.value);\n }\n if (closeOnSelect && !isMultiMode(mode)) setOpen(false);\n };\n\n const handleTriggerKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) setOpen(true);\n const direction = event.key === 'ArrowDown' ? 1 : -1;\n setActiveIndex((index) => Math.max(0, Math.min(visibleOptions.length - 1, index + direction)));\n }\n };\n\n const handleContentKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n const direction = event.key === 'ArrowDown' ? 1 : -1;\n setActiveIndex((index) => {\n const next = index + direction;\n return Math.max(0, Math.min(visibleOptions.length - 1, next));\n });\n }\n if (event.key === 'Enter' && visibleOptions[activeIndex]) {\n event.preventDefault();\n selectOption(visibleOptions[activeIndex]!);\n }\n };\n\n useEffect(() => {\n if (!open) return;\n itemRefs.current[activeIndex]?.scrollIntoView({ block: 'nearest' });\n }, [activeIndex, open]);\n\n const clearSelection = () => {\n commitValue(isMultiMode(mode) ? [] : '');\n onClear?.();\n };\n\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <div\n {...rootProps}\n ref={ref}\n className={cn('relative inline-flex min-w-0', className)}\n style={style}\n data-monkeys-component=\"unified-dropdown\"\n data-mode={mode}\n data-state={open ? 'open' : 'closed'}\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n data-appearance-preset={appearance?.preset}\n data-appearance-variant={appearance?.variant}\n data-appearance-density={appearance?.density}\n data-appearance-radius={appearance?.radius}\n >\n <PopoverPrimitive.Trigger asChild>\n <button\n ref={triggerRef}\n id={triggerId}\n type=\"button\"\n disabled={disabled}\n aria-expanded={open}\n aria-haspopup={isMenu || usesCheckedMenu ? 'menu' : 'listbox'}\n aria-controls={open ? listId : undefined}\n aria-invalid={invalid || undefined}\n onKeyDown={handleTriggerKeyDown}\n className={cn(\n 'flex min-w-0 items-center justify-between gap-2 rounded-md border border-input bg-control-surface px-3 text-left text-sm text-foreground shadow-sm outline-none transition-colors',\n 'focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-control-surface',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n size === 'sm' ? 'h-8 py-1 text-xs' : 'h-10 py-2',\n invalid && 'border-destructive focus-visible:ring-destructive',\n width === 'responsive' && 'w-full sm:w-auto',\n classNames?.trigger,\n )}\n >\n {trigger ? <span className=\"min-w-0 shrink-0\">{trigger}</span> : null}\n <span className={cn('min-w-0 flex-1 truncate', isPlaceholder && 'text-muted-foreground')}>\n {resolvedTriggerLabel}\n </span>\n <ChevronDown aria-hidden=\"true\" className=\"h-4 w-4 shrink-0 opacity-60\" />\n </button>\n </PopoverPrimitive.Trigger>\n {(() => {\n const content = (\n <PopoverPrimitive.Content\n id={listId}\n side={side}\n align={align}\n sideOffset={6}\n collisionPadding={8}\n avoidCollisions\n onKeyDown={handleContentKeyDown}\n onOpenAutoFocus={(event) => {\n event.preventDefault();\n const target = searchable\n ? document.getElementById(searchId)\n : itemRefs.current[0];\n target?.focus();\n }}\n tabIndex={-1}\n className={cn(\n 'z-50 max-h-[min(24rem,calc(100vh-1rem))] max-w-[calc(100vw-1rem)] overflow-y-auto rounded-md border bg-menu-surface p-1 text-popover-foreground shadow-md outline-none',\n width === 'trigger' && 'w-[var(--radix-popover-trigger-width)] min-w-[12rem]',\n width === 'content' && 'min-w-[12rem] max-w-[min(32rem,calc(100vw-1rem))]',\n width === 'responsive' && 'w-[min(var(--radix-popover-trigger-width),calc(100vw-1rem))] min-w-[12rem]',\n classNames?.content,\n )}\n >\n {searchable ? (\n <div className=\"relative mb-1\">\n <Search aria-hidden=\"true\" className=\"pointer-events-none absolute left-2 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\n <input\n id={searchId}\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n placeholder={searchPlaceholder}\n aria-label={searchPlaceholder}\n className={cn('h-9 w-full rounded-sm border-0 bg-transparent pl-8 pr-2 text-sm outline-none ring-0 placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring', classNames?.search)}\n />\n </div>\n ) : null}\n {clearable && selectedOptions.length > 0 ? (\n <button type=\"button\" className=\"mb-1 w-full rounded-sm px-2 py-1 text-left text-xs text-muted-foreground hover:bg-accent\" onClick={clearSelection}>\n {clearLabel}\n </button>\n ) : null}\n {loading && visibleOptions.length === 0 ? (\n slots?.loading ? slots.loading() : <div role=\"status\" className={cn('px-2 py-6 text-center text-sm text-muted-foreground', classNames?.empty)}>{loadingLabel}</div>\n ) : error && visibleOptions.length === 0 ? (\n slots?.error ? slots.error() : <div role=\"alert\" className={cn('px-2 py-6 text-center text-sm text-destructive-text', classNames?.empty)}>{error}{onRetry ? <button type=\"button\" className=\"mt-2 block w-full text-center text-foreground underline\" onClick={onRetry}>{retryLabel}</button> : null}</div>\n ) : visibleOptions.length === 0 ? (\n slots?.empty ? slots.empty() : <div role=\"status\" className={cn('px-2 py-6 text-center text-sm text-muted-foreground', classNames?.empty)}>{emptyLabel}</div>\n ) : (\n <div role={mode === 'tree' ? 'tree' : contentRole} aria-multiselectable={mode === 'multi' || undefined}>\n {visibleOptions.map((option, index) => {\n const selected = selectedSet.has(option.value);\n const indicator = mode === 'radio' ? <Circle aria-hidden=\"true\" className={cn('h-3.5 w-3.5', selected && 'fill-current')} /> : <Check aria-hidden=\"true\" className=\"h-4 w-4\" />;\n return (\n <div key={option.value}>\n {option.group && (index === 0 || visibleOptions[index - 1]?.group !== option.group) ? (\n <div role=\"presentation\" className={cn('px-2 pb-1 pt-2 text-xs font-medium text-muted-foreground', classNames?.groupLabel)}>{option.group}</div>\n ) : null}\n <button\n ref={(node) => { itemRefs.current[index] = node; }}\n type=\"button\"\n role={mode === 'tree' ? 'treeitem' : mode === 'radio' ? 'menuitemradio' : mode === 'checkbox' ? 'menuitemcheckbox' : isMenu ? 'menuitem' : 'option'}\n aria-level={mode === 'tree' ? option.depth + 1 : undefined}\n aria-selected={!isMenu && !usesCheckedMenu ? selected : undefined}\n aria-checked={usesCheckedMenu ? selected : undefined}\n disabled={option.disabled}\n data-highlighted={index === activeIndex || undefined}\n data-state={selected ? 'checked' : 'unchecked'}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => selectOption(option)}\n className={cn(\n 'relative flex min-h-9 w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors',\n 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n 'disabled:pointer-events-none disabled:opacity-50',\n index === activeIndex && 'bg-accent text-accent-foreground',\n selected && 'font-medium',\n option.danger && 'text-destructive-text',\n mode !== 'action' && 'pl-8',\n classNames?.item,\n )}\n style={mode === 'tree' ? { paddingInlineStart: `${8 + option.depth * 16}px` } : undefined}\n >\n {mode !== 'action' ? <span className=\"absolute left-2 flex h-4 w-4 items-center justify-center\">{selected ? indicator : null}</span> : null}\n {slots?.option ? slots.option({ option, selected, highlighted: index === activeIndex }) : <>\n {option.icon ? <span className=\"shrink-0\">{option.icon}</span> : null}\n <span className={cn('min-w-0 flex-1 truncate', classNames?.itemLabel)}>{option.label}</span>\n {option.description ? <span className={cn('max-w-[45%] truncate text-xs text-muted-foreground', classNames?.itemDescription)}>{option.description}</span> : null}\n </>}\n </button>\n </div>\n );\n })}\n </div>\n )}\n {error && visibleOptions.length > 0 ? <div role=\"status\" className=\"px-2 py-1 text-xs text-destructive-text\">{error}</div> : null}\n {loading && visibleOptions.length > 0 ? <div role=\"status\" className=\"px-2 py-1 text-xs text-muted-foreground\">{loadingLabel}</div> : null}\n {slots?.footer ? slots.footer() : null}\n </PopoverPrimitive.Content>\n );\n return portal ? <PopoverPrimitive.Portal>{content}</PopoverPrimitive.Portal> : content;\n })()}\n </div>\n </PopoverPrimitive.Root>\n );\n },\n);\n"]}
@@ -1,4 +1,4 @@
1
- export { I as InteractiveTable, a as InteractiveTableClassNames, b as InteractiveTableColumn, c as InteractiveTableColumnMenuLabels, d as InteractiveTableEditableTextCell, e as InteractiveTableEditableTextCellProps, f as InteractiveTableHeaderContext, g as InteractiveTableHeaderProps, h as InteractiveTableProps, i as InteractiveTableReadonlyCell, j as InteractiveTableReadonlyCellProps, k as InteractiveTableRenderContext, l as InteractiveTableRowState, m as InteractiveTableSelectCell, n as InteractiveTableSelectCellProps, o as InteractiveTableSelectOption, W as WorkbenchAssetGallery, p as WorkbenchAssetGalleryItem, q as WorkbenchAssetGalleryProps, r as WorkbenchCollection, bx as WorkbenchCollectionActionsPlacement, by as WorkbenchCollectionActionsVisibility, s as WorkbenchCollectionActivationEvent, t as WorkbenchCollectionAppearanceConfig, u as WorkbenchCollectionCallbacks, v as WorkbenchCollectionClassNames, w as WorkbenchCollectionConfig, x as WorkbenchCollectionGroupContext, y as WorkbenchCollectionGroupingConfig, z as WorkbenchCollectionHoverEffect, bz as WorkbenchCollectionItemActionsConfig, bA as WorkbenchCollectionItemAlign, A as WorkbenchCollectionItemConfig, B as WorkbenchCollectionItemContext, C as WorkbenchCollectionItemSize, D as WorkbenchCollectionItemSlotName, E as WorkbenchCollectionItemSlots, F as WorkbenchCollectionItemStatus, G as WorkbenchCollectionItemTitleConfig, H as WorkbenchCollectionKey, J as WorkbenchCollectionLabels, K as WorkbenchCollectionLayoutConfig, L as WorkbenchCollectionLayoutContext, M as WorkbenchCollectionLayoutMode, N as WorkbenchCollectionLayoutSnapshot, O as WorkbenchCollectionLoadingConfig, P as WorkbenchCollectionLoadingVariant, Q as WorkbenchCollectionProps, R as WorkbenchCollectionResponsive, S as WorkbenchCollectionSelectionBehavior, T as WorkbenchCollectionSelectionConfig, U as WorkbenchCollectionSelectionMode, V as WorkbenchCollectionSkeletonConfig, X as WorkbenchCollectionSlotContext, Y as WorkbenchCollectionSlots, Z as WorkbenchCollectionStateConfig, _ as WorkbenchCollectionTitlePlacement, $ as WorkbenchCollectionTitleVisibility, a0 as WorkbenchCollectionVirtualizationAdapter, a1 as WorkbenchCollectionVirtualizationConfig, a2 as WorkbenchCollectionVirtualizationRenderOptions, a3 as WorkbenchContentPane, a4 as WorkbenchContentPaneBodyProps, a5 as WorkbenchContentPaneClassNames, a6 as WorkbenchContentPaneProps, a7 as WorkbenchContentToolbar, a8 as WorkbenchContentToolbarClassNames, a9 as WorkbenchContentToolbarProps, aa as WorkbenchContentToolbarViewModeOption, ab as WorkbenchDetailSidebar, ac as WorkbenchDetailSidebarBodyProps, ad as WorkbenchDetailSidebarClassNames, ae as WorkbenchDetailSidebarField, af as WorkbenchDetailSidebarProps, ag as WorkbenchDetailSidebarRenderContext, ah as WorkbenchDetailSidebarSection, ai as WorkbenchEvidenceItem, aj as WorkbenchEvidenceList, ak as WorkbenchEvidenceListProps, al as WorkbenchGalleryCard, am as WorkbenchGalleryCardMetaContext, an as WorkbenchGalleryCardProps, ao as WorkbenchGalleryCardRenderContext, ap as WorkbenchGalleryColumn, aq as WorkbenchGalleryLabels, ar as WorkbenchGalleryRecordVisual, as as WorkbenchGallerySettingsButton, at as WorkbenchGallerySettingsButtonClassNames, au as WorkbenchGallerySettingsButtonProps, av as WorkbenchGallerySettingsLabels, aw as WorkbenchGallerySettingsOption, ax as WorkbenchGallerySettingsPanel, ay as WorkbenchGallerySettingsPanelClassNames, az as WorkbenchGallerySettingsPanelProps, aA as WorkbenchGallerySettingsValue, aB as WorkbenchGalleryView, aC as WorkbenchGalleryViewProps, aD as WorkbenchJourneyItem, aE as WorkbenchJourneyItemState, aF as WorkbenchJourneyNavigation, aG as WorkbenchJourneyNavigationProps, aH as WorkbenchLaneClassNames, aI as WorkbenchLaneColumn, aJ as WorkbenchLaneRenderCardContext, aK as WorkbenchLaneView, aL as WorkbenchLaneViewProps, aM as WorkbenchMasonryItemSize, aN as WorkbenchMasonryLayout, aO as WorkbenchMasonryLayoutContext, aP as WorkbenchMasonryLayoutProps, aQ as WorkbenchMetricGrid, aR as WorkbenchMetricGridDensity, aS as WorkbenchMetricGridProps, aT as WorkbenchMetricGridVariant, aU as WorkbenchMetricItem, aV as WorkbenchRadarFilterChip, aW as WorkbenchRadarInspectorSection, aX as WorkbenchRadarLegendItem, aY as WorkbenchRadarMatrix, aZ as WorkbenchRadarMatrixProps, a_ as WorkbenchRadarNavigation, a$ as WorkbenchRadarNavigationChild, b0 as WorkbenchRadarNavigationItem, b1 as WorkbenchRadarNavigationProps, b2 as WorkbenchRadarQuadrant, b3 as WorkbenchRadarWorkspace, b4 as WorkbenchRadarWorkspaceProps, b5 as WorkbenchRankedList, b6 as WorkbenchRankedListItem, b7 as WorkbenchRankedListMetric, b8 as WorkbenchRankedListProps, b9 as WorkbenchRelationshipEdge, ba as WorkbenchRelationshipGraph, bb as WorkbenchRelationshipGraphProps, bc as WorkbenchRelationshipNode, bd as WorkbenchResizableSidebar, be as WorkbenchResizableSidebarClassNames, bf as WorkbenchResizableSidebarItem, bg as WorkbenchResizableSidebarProps, bh as WorkbenchResizableSidebarSection, bi as WorkbenchScatterAxis, bj as WorkbenchScatterPlot, bk as WorkbenchScatterPlotProps, bl as WorkbenchScatterPoint, bm as WorkbenchScatterThresholds, bn as WorkbenchSelectionTray, bo as WorkbenchSelectionTrayItem, bp as WorkbenchSelectionTrayProps, bq as WorkbenchTableView, br as WorkbenchTableViewClassNames, bs as WorkbenchTableViewColumn, bt as WorkbenchTableViewHeaderContext, bu as WorkbenchTableViewProps, bv as WorkbenchTableViewRenderContext, bw as WorkbenchVisualizationTone } from '../../WorkbenchRadarMatrix-3b2384181e2d.mjs';
1
+ export { I as InteractiveTable, a as InteractiveTableClassNames, b as InteractiveTableColumn, c as InteractiveTableColumnMenuLabels, d as InteractiveTableEditableTextCell, e as InteractiveTableEditableTextCellProps, f as InteractiveTableHeaderContext, g as InteractiveTableHeaderProps, h as InteractiveTableProps, i as InteractiveTableReadonlyCell, j as InteractiveTableReadonlyCellProps, k as InteractiveTableRenderContext, l as InteractiveTableRowState, m as InteractiveTableSelectCell, n as InteractiveTableSelectCellProps, o as InteractiveTableSelectOption, W as WorkbenchAssetGallery, p as WorkbenchAssetGalleryItem, q as WorkbenchAssetGalleryProps, r as WorkbenchCollection, bD as WorkbenchCollectionActionsPlacement, bE as WorkbenchCollectionActionsVisibility, s as WorkbenchCollectionActivationEvent, t as WorkbenchCollectionAppearanceConfig, u as WorkbenchCollectionCallbacks, v as WorkbenchCollectionClassNames, w as WorkbenchCollectionConfig, x as WorkbenchCollectionGroupContext, y as WorkbenchCollectionGroupingConfig, z as WorkbenchCollectionHoverEffect, bF as WorkbenchCollectionItemActionsConfig, bG as WorkbenchCollectionItemAlign, A as WorkbenchCollectionItemConfig, B as WorkbenchCollectionItemContext, C as WorkbenchCollectionItemSize, D as WorkbenchCollectionItemSlotName, E as WorkbenchCollectionItemSlots, F as WorkbenchCollectionItemStatus, G as WorkbenchCollectionItemTitleConfig, H as WorkbenchCollectionKey, J as WorkbenchCollectionLabels, K as WorkbenchCollectionLayoutConfig, L as WorkbenchCollectionLayoutContext, M as WorkbenchCollectionLayoutMode, N as WorkbenchCollectionLayoutSnapshot, O as WorkbenchCollectionLoadingConfig, P as WorkbenchCollectionLoadingVariant, Q as WorkbenchCollectionProps, R as WorkbenchCollectionResponsive, S as WorkbenchCollectionSelectionBehavior, T as WorkbenchCollectionSelectionConfig, U as WorkbenchCollectionSelectionMode, V as WorkbenchCollectionSkeletonConfig, X as WorkbenchCollectionSlotContext, Y as WorkbenchCollectionSlots, Z as WorkbenchCollectionStateConfig, _ as WorkbenchCollectionTitlePlacement, $ as WorkbenchCollectionTitleVisibility, a0 as WorkbenchCollectionVirtualizationAdapter, a1 as WorkbenchCollectionVirtualizationConfig, a2 as WorkbenchCollectionVirtualizationRenderOptions, a3 as WorkbenchContentPane, a4 as WorkbenchContentPaneBodyProps, a5 as WorkbenchContentPaneClassNames, a6 as WorkbenchContentPaneProps, a7 as WorkbenchContentToolbar, a8 as WorkbenchContentToolbarClassNames, a9 as WorkbenchContentToolbarProps, aa as WorkbenchContentToolbarViewModeOption, ab as WorkbenchDetailSidebar, ac as WorkbenchDetailSidebarBodyProps, ad as WorkbenchDetailSidebarClassNames, ae as WorkbenchDetailSidebarField, af as WorkbenchDetailSidebarProps, ag as WorkbenchDetailSidebarRenderContext, ah as WorkbenchDetailSidebarSection, ai as WorkbenchEvidenceItem, aj as WorkbenchEvidenceList, ak as WorkbenchEvidenceListProps, al as WorkbenchGalleryCard, am as WorkbenchGalleryCardMetaContext, an as WorkbenchGalleryCardProps, ao as WorkbenchGalleryCardRenderContext, ap as WorkbenchGalleryColumn, aq as WorkbenchGalleryLabels, ar as WorkbenchGalleryRecordVisual, as as WorkbenchGallerySettingsButton, at as WorkbenchGallerySettingsButtonClassNames, au as WorkbenchGallerySettingsButtonProps, av as WorkbenchGallerySettingsLabels, aw as WorkbenchGallerySettingsOption, ax as WorkbenchGallerySettingsPanel, ay as WorkbenchGallerySettingsPanelClassNames, az as WorkbenchGallerySettingsPanelProps, aA as WorkbenchGallerySettingsValue, aB as WorkbenchGalleryView, aC as WorkbenchGalleryViewProps, aD as WorkbenchJourneyItem, aE as WorkbenchJourneyItemState, aF as WorkbenchJourneyNavigation, aG as WorkbenchJourneyNavigationProps, aH as WorkbenchLaneClassNames, aI as WorkbenchLaneColumn, aJ as WorkbenchLaneRenderCardContext, aK as WorkbenchLaneView, aL as WorkbenchLaneViewProps, aM as WorkbenchMasonryItemSize, aN as WorkbenchMasonryLayout, aO as WorkbenchMasonryLayoutContext, aP as WorkbenchMasonryLayoutProps, aQ as WorkbenchMetricGrid, aR as WorkbenchMetricGridDensity, aS as WorkbenchMetricGridProps, aT as WorkbenchMetricGridVariant, aU as WorkbenchMetricItem, aV as WorkbenchRadarFilterChip, aW as WorkbenchRadarFilterChipProps, aX as WorkbenchRadarFilterRow, aY as WorkbenchRadarFilterRowDisclosureBase, aZ as WorkbenchRadarFilterRowIntegratedDisclosure, a_ as WorkbenchRadarFilterRowProps, a$ as WorkbenchRadarFilterRowSeparateDisclosure, b0 as WorkbenchRadarInspectorSection, b1 as WorkbenchRadarLegendItem, b2 as WorkbenchRadarMatrix, b3 as WorkbenchRadarMatrixProps, b4 as WorkbenchRadarNavigation, b5 as WorkbenchRadarNavigationChild, b6 as WorkbenchRadarNavigationItem, b7 as WorkbenchRadarNavigationProps, b8 as WorkbenchRadarQuadrant, b9 as WorkbenchRadarWorkspace, ba as WorkbenchRadarWorkspaceProps, bb as WorkbenchRankedList, bc as WorkbenchRankedListItem, bd as WorkbenchRankedListMetric, be as WorkbenchRankedListProps, bf as WorkbenchRelationshipEdge, bg as WorkbenchRelationshipGraph, bh as WorkbenchRelationshipGraphProps, bi as WorkbenchRelationshipNode, bj as WorkbenchResizableSidebar, bk as WorkbenchResizableSidebarClassNames, bl as WorkbenchResizableSidebarItem, bm as WorkbenchResizableSidebarProps, bn as WorkbenchResizableSidebarSection, bo as WorkbenchScatterAxis, bp as WorkbenchScatterPlot, bq as WorkbenchScatterPlotProps, br as WorkbenchScatterPoint, bs as WorkbenchScatterThresholds, bt as WorkbenchSelectionTray, bu as WorkbenchSelectionTrayItem, bv as WorkbenchSelectionTrayProps, bw as WorkbenchTableView, bx as WorkbenchTableViewClassNames, by as WorkbenchTableViewColumn, bz as WorkbenchTableViewHeaderContext, bA as WorkbenchTableViewProps, bB as WorkbenchTableViewRenderContext, bC as WorkbenchVisualizationTone } from '../../WorkbenchRadarMatrix-b50483af5a5d.mjs';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { HTMLAttributes } from 'react';
4
4
  import '../../types-c6ec8b90925b.mjs';
@@ -1,4 +1,4 @@
1
- export { I as InteractiveTable, a as InteractiveTableClassNames, b as InteractiveTableColumn, c as InteractiveTableColumnMenuLabels, d as InteractiveTableEditableTextCell, e as InteractiveTableEditableTextCellProps, f as InteractiveTableHeaderContext, g as InteractiveTableHeaderProps, h as InteractiveTableProps, i as InteractiveTableReadonlyCell, j as InteractiveTableReadonlyCellProps, k as InteractiveTableRenderContext, l as InteractiveTableRowState, m as InteractiveTableSelectCell, n as InteractiveTableSelectCellProps, o as InteractiveTableSelectOption, W as WorkbenchAssetGallery, p as WorkbenchAssetGalleryItem, q as WorkbenchAssetGalleryProps, r as WorkbenchCollection, bx as WorkbenchCollectionActionsPlacement, by as WorkbenchCollectionActionsVisibility, s as WorkbenchCollectionActivationEvent, t as WorkbenchCollectionAppearanceConfig, u as WorkbenchCollectionCallbacks, v as WorkbenchCollectionClassNames, w as WorkbenchCollectionConfig, x as WorkbenchCollectionGroupContext, y as WorkbenchCollectionGroupingConfig, z as WorkbenchCollectionHoverEffect, bz as WorkbenchCollectionItemActionsConfig, bA as WorkbenchCollectionItemAlign, A as WorkbenchCollectionItemConfig, B as WorkbenchCollectionItemContext, C as WorkbenchCollectionItemSize, D as WorkbenchCollectionItemSlotName, E as WorkbenchCollectionItemSlots, F as WorkbenchCollectionItemStatus, G as WorkbenchCollectionItemTitleConfig, H as WorkbenchCollectionKey, J as WorkbenchCollectionLabels, K as WorkbenchCollectionLayoutConfig, L as WorkbenchCollectionLayoutContext, M as WorkbenchCollectionLayoutMode, N as WorkbenchCollectionLayoutSnapshot, O as WorkbenchCollectionLoadingConfig, P as WorkbenchCollectionLoadingVariant, Q as WorkbenchCollectionProps, R as WorkbenchCollectionResponsive, S as WorkbenchCollectionSelectionBehavior, T as WorkbenchCollectionSelectionConfig, U as WorkbenchCollectionSelectionMode, V as WorkbenchCollectionSkeletonConfig, X as WorkbenchCollectionSlotContext, Y as WorkbenchCollectionSlots, Z as WorkbenchCollectionStateConfig, _ as WorkbenchCollectionTitlePlacement, $ as WorkbenchCollectionTitleVisibility, a0 as WorkbenchCollectionVirtualizationAdapter, a1 as WorkbenchCollectionVirtualizationConfig, a2 as WorkbenchCollectionVirtualizationRenderOptions, a3 as WorkbenchContentPane, a4 as WorkbenchContentPaneBodyProps, a5 as WorkbenchContentPaneClassNames, a6 as WorkbenchContentPaneProps, a7 as WorkbenchContentToolbar, a8 as WorkbenchContentToolbarClassNames, a9 as WorkbenchContentToolbarProps, aa as WorkbenchContentToolbarViewModeOption, ab as WorkbenchDetailSidebar, ac as WorkbenchDetailSidebarBodyProps, ad as WorkbenchDetailSidebarClassNames, ae as WorkbenchDetailSidebarField, af as WorkbenchDetailSidebarProps, ag as WorkbenchDetailSidebarRenderContext, ah as WorkbenchDetailSidebarSection, ai as WorkbenchEvidenceItem, aj as WorkbenchEvidenceList, ak as WorkbenchEvidenceListProps, al as WorkbenchGalleryCard, am as WorkbenchGalleryCardMetaContext, an as WorkbenchGalleryCardProps, ao as WorkbenchGalleryCardRenderContext, ap as WorkbenchGalleryColumn, aq as WorkbenchGalleryLabels, ar as WorkbenchGalleryRecordVisual, as as WorkbenchGallerySettingsButton, at as WorkbenchGallerySettingsButtonClassNames, au as WorkbenchGallerySettingsButtonProps, av as WorkbenchGallerySettingsLabels, aw as WorkbenchGallerySettingsOption, ax as WorkbenchGallerySettingsPanel, ay as WorkbenchGallerySettingsPanelClassNames, az as WorkbenchGallerySettingsPanelProps, aA as WorkbenchGallerySettingsValue, aB as WorkbenchGalleryView, aC as WorkbenchGalleryViewProps, aD as WorkbenchJourneyItem, aE as WorkbenchJourneyItemState, aF as WorkbenchJourneyNavigation, aG as WorkbenchJourneyNavigationProps, aH as WorkbenchLaneClassNames, aI as WorkbenchLaneColumn, aJ as WorkbenchLaneRenderCardContext, aK as WorkbenchLaneView, aL as WorkbenchLaneViewProps, aM as WorkbenchMasonryItemSize, aN as WorkbenchMasonryLayout, aO as WorkbenchMasonryLayoutContext, aP as WorkbenchMasonryLayoutProps, aQ as WorkbenchMetricGrid, aR as WorkbenchMetricGridDensity, aS as WorkbenchMetricGridProps, aT as WorkbenchMetricGridVariant, aU as WorkbenchMetricItem, aV as WorkbenchRadarFilterChip, aW as WorkbenchRadarInspectorSection, aX as WorkbenchRadarLegendItem, aY as WorkbenchRadarMatrix, aZ as WorkbenchRadarMatrixProps, a_ as WorkbenchRadarNavigation, a$ as WorkbenchRadarNavigationChild, b0 as WorkbenchRadarNavigationItem, b1 as WorkbenchRadarNavigationProps, b2 as WorkbenchRadarQuadrant, b3 as WorkbenchRadarWorkspace, b4 as WorkbenchRadarWorkspaceProps, b5 as WorkbenchRankedList, b6 as WorkbenchRankedListItem, b7 as WorkbenchRankedListMetric, b8 as WorkbenchRankedListProps, b9 as WorkbenchRelationshipEdge, ba as WorkbenchRelationshipGraph, bb as WorkbenchRelationshipGraphProps, bc as WorkbenchRelationshipNode, bd as WorkbenchResizableSidebar, be as WorkbenchResizableSidebarClassNames, bf as WorkbenchResizableSidebarItem, bg as WorkbenchResizableSidebarProps, bh as WorkbenchResizableSidebarSection, bi as WorkbenchScatterAxis, bj as WorkbenchScatterPlot, bk as WorkbenchScatterPlotProps, bl as WorkbenchScatterPoint, bm as WorkbenchScatterThresholds, bn as WorkbenchSelectionTray, bo as WorkbenchSelectionTrayItem, bp as WorkbenchSelectionTrayProps, bq as WorkbenchTableView, br as WorkbenchTableViewClassNames, bs as WorkbenchTableViewColumn, bt as WorkbenchTableViewHeaderContext, bu as WorkbenchTableViewProps, bv as WorkbenchTableViewRenderContext, bw as WorkbenchVisualizationTone } from '../../WorkbenchRadarMatrix-3f0daea32926.js';
1
+ export { I as InteractiveTable, a as InteractiveTableClassNames, b as InteractiveTableColumn, c as InteractiveTableColumnMenuLabels, d as InteractiveTableEditableTextCell, e as InteractiveTableEditableTextCellProps, f as InteractiveTableHeaderContext, g as InteractiveTableHeaderProps, h as InteractiveTableProps, i as InteractiveTableReadonlyCell, j as InteractiveTableReadonlyCellProps, k as InteractiveTableRenderContext, l as InteractiveTableRowState, m as InteractiveTableSelectCell, n as InteractiveTableSelectCellProps, o as InteractiveTableSelectOption, W as WorkbenchAssetGallery, p as WorkbenchAssetGalleryItem, q as WorkbenchAssetGalleryProps, r as WorkbenchCollection, bD as WorkbenchCollectionActionsPlacement, bE as WorkbenchCollectionActionsVisibility, s as WorkbenchCollectionActivationEvent, t as WorkbenchCollectionAppearanceConfig, u as WorkbenchCollectionCallbacks, v as WorkbenchCollectionClassNames, w as WorkbenchCollectionConfig, x as WorkbenchCollectionGroupContext, y as WorkbenchCollectionGroupingConfig, z as WorkbenchCollectionHoverEffect, bF as WorkbenchCollectionItemActionsConfig, bG as WorkbenchCollectionItemAlign, A as WorkbenchCollectionItemConfig, B as WorkbenchCollectionItemContext, C as WorkbenchCollectionItemSize, D as WorkbenchCollectionItemSlotName, E as WorkbenchCollectionItemSlots, F as WorkbenchCollectionItemStatus, G as WorkbenchCollectionItemTitleConfig, H as WorkbenchCollectionKey, J as WorkbenchCollectionLabels, K as WorkbenchCollectionLayoutConfig, L as WorkbenchCollectionLayoutContext, M as WorkbenchCollectionLayoutMode, N as WorkbenchCollectionLayoutSnapshot, O as WorkbenchCollectionLoadingConfig, P as WorkbenchCollectionLoadingVariant, Q as WorkbenchCollectionProps, R as WorkbenchCollectionResponsive, S as WorkbenchCollectionSelectionBehavior, T as WorkbenchCollectionSelectionConfig, U as WorkbenchCollectionSelectionMode, V as WorkbenchCollectionSkeletonConfig, X as WorkbenchCollectionSlotContext, Y as WorkbenchCollectionSlots, Z as WorkbenchCollectionStateConfig, _ as WorkbenchCollectionTitlePlacement, $ as WorkbenchCollectionTitleVisibility, a0 as WorkbenchCollectionVirtualizationAdapter, a1 as WorkbenchCollectionVirtualizationConfig, a2 as WorkbenchCollectionVirtualizationRenderOptions, a3 as WorkbenchContentPane, a4 as WorkbenchContentPaneBodyProps, a5 as WorkbenchContentPaneClassNames, a6 as WorkbenchContentPaneProps, a7 as WorkbenchContentToolbar, a8 as WorkbenchContentToolbarClassNames, a9 as WorkbenchContentToolbarProps, aa as WorkbenchContentToolbarViewModeOption, ab as WorkbenchDetailSidebar, ac as WorkbenchDetailSidebarBodyProps, ad as WorkbenchDetailSidebarClassNames, ae as WorkbenchDetailSidebarField, af as WorkbenchDetailSidebarProps, ag as WorkbenchDetailSidebarRenderContext, ah as WorkbenchDetailSidebarSection, ai as WorkbenchEvidenceItem, aj as WorkbenchEvidenceList, ak as WorkbenchEvidenceListProps, al as WorkbenchGalleryCard, am as WorkbenchGalleryCardMetaContext, an as WorkbenchGalleryCardProps, ao as WorkbenchGalleryCardRenderContext, ap as WorkbenchGalleryColumn, aq as WorkbenchGalleryLabels, ar as WorkbenchGalleryRecordVisual, as as WorkbenchGallerySettingsButton, at as WorkbenchGallerySettingsButtonClassNames, au as WorkbenchGallerySettingsButtonProps, av as WorkbenchGallerySettingsLabels, aw as WorkbenchGallerySettingsOption, ax as WorkbenchGallerySettingsPanel, ay as WorkbenchGallerySettingsPanelClassNames, az as WorkbenchGallerySettingsPanelProps, aA as WorkbenchGallerySettingsValue, aB as WorkbenchGalleryView, aC as WorkbenchGalleryViewProps, aD as WorkbenchJourneyItem, aE as WorkbenchJourneyItemState, aF as WorkbenchJourneyNavigation, aG as WorkbenchJourneyNavigationProps, aH as WorkbenchLaneClassNames, aI as WorkbenchLaneColumn, aJ as WorkbenchLaneRenderCardContext, aK as WorkbenchLaneView, aL as WorkbenchLaneViewProps, aM as WorkbenchMasonryItemSize, aN as WorkbenchMasonryLayout, aO as WorkbenchMasonryLayoutContext, aP as WorkbenchMasonryLayoutProps, aQ as WorkbenchMetricGrid, aR as WorkbenchMetricGridDensity, aS as WorkbenchMetricGridProps, aT as WorkbenchMetricGridVariant, aU as WorkbenchMetricItem, aV as WorkbenchRadarFilterChip, aW as WorkbenchRadarFilterChipProps, aX as WorkbenchRadarFilterRow, aY as WorkbenchRadarFilterRowDisclosureBase, aZ as WorkbenchRadarFilterRowIntegratedDisclosure, a_ as WorkbenchRadarFilterRowProps, a$ as WorkbenchRadarFilterRowSeparateDisclosure, b0 as WorkbenchRadarInspectorSection, b1 as WorkbenchRadarLegendItem, b2 as WorkbenchRadarMatrix, b3 as WorkbenchRadarMatrixProps, b4 as WorkbenchRadarNavigation, b5 as WorkbenchRadarNavigationChild, b6 as WorkbenchRadarNavigationItem, b7 as WorkbenchRadarNavigationProps, b8 as WorkbenchRadarQuadrant, b9 as WorkbenchRadarWorkspace, ba as WorkbenchRadarWorkspaceProps, bb as WorkbenchRankedList, bc as WorkbenchRankedListItem, bd as WorkbenchRankedListMetric, be as WorkbenchRankedListProps, bf as WorkbenchRelationshipEdge, bg as WorkbenchRelationshipGraph, bh as WorkbenchRelationshipGraphProps, bi as WorkbenchRelationshipNode, bj as WorkbenchResizableSidebar, bk as WorkbenchResizableSidebarClassNames, bl as WorkbenchResizableSidebarItem, bm as WorkbenchResizableSidebarProps, bn as WorkbenchResizableSidebarSection, bo as WorkbenchScatterAxis, bp as WorkbenchScatterPlot, bq as WorkbenchScatterPlotProps, br as WorkbenchScatterPoint, bs as WorkbenchScatterThresholds, bt as WorkbenchSelectionTray, bu as WorkbenchSelectionTrayItem, bv as WorkbenchSelectionTrayProps, bw as WorkbenchTableView, bx as WorkbenchTableViewClassNames, by as WorkbenchTableViewColumn, bz as WorkbenchTableViewHeaderContext, bA as WorkbenchTableViewProps, bB as WorkbenchTableViewRenderContext, bC as WorkbenchVisualizationTone } from '../../WorkbenchRadarMatrix-2ec5e4970f24.js';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { HTMLAttributes } from 'react';
4
4
  import '../../types-c6ec8b90925b.js';