@pstdio/ui 0.37.0 → 0.39.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.
Files changed (42) hide show
  1. package/dist/{MermaidComponent-BLMDb5XE.js → MermaidComponent-81jr28u4.js} +2 -2
  2. package/dist/{MermaidComponent-BLMDb5XE.js.map → MermaidComponent-81jr28u4.js.map} +1 -1
  3. package/dist/chat-ui.d.ts +6 -6
  4. package/dist/chat-ui.js +1 -1
  5. package/dist/{data-table-stats-row-BrpOFzgn.js → data-table-stats-row-CpRe_xK2.js} +2 -2
  6. package/dist/{data-table-stats-row-BrpOFzgn.js.map → data-table-stats-row-CpRe_xK2.js.map} +1 -1
  7. package/dist/data-table.d.ts +3 -1
  8. package/dist/data-table.js +7 -10
  9. package/dist/data-table.js.map +1 -1
  10. package/dist/{diff-viewer-hGkaF_zW.js → diff-viewer-DJ1B5hxL.js} +3 -3
  11. package/dist/{diff-viewer-hGkaF_zW.js.map → diff-viewer-DJ1B5hxL.js.map} +1 -1
  12. package/dist/diff.js +1 -1
  13. package/dist/index.d.ts +8 -6
  14. package/dist/index.js +111 -99
  15. package/dist/index.js.map +1 -1
  16. package/dist/kanban-renderer.d.ts +9 -21
  17. package/dist/kanban-renderer.js +276 -274
  18. package/dist/kanban-renderer.js.map +1 -1
  19. package/dist/{list-row-De9R2zKU.js → list-row-uqD-q4gv.js} +20 -10
  20. package/dist/list-row-uqD-q4gv.js.map +1 -0
  21. package/dist/{param-editor-BsyIOdrP.js → param-editor-BQd4AOUP.js} +2 -2
  22. package/dist/{param-editor-BsyIOdrP.js.map → param-editor-BQd4AOUP.js.map} +1 -1
  23. package/dist/{param-editor-field-qEWoluWT.js → param-editor-field-BJ_rLUnV.js} +728 -722
  24. package/dist/param-editor-field-BJ_rLUnV.js.map +1 -0
  25. package/dist/param-editor.d.ts +1 -0
  26. package/dist/param-editor.js +2 -2
  27. package/dist/{rich-text-CQAntEuA.js → rich-text-VYAmEigU.js} +1142 -1184
  28. package/dist/rich-text-VYAmEigU.js.map +1 -0
  29. package/dist/rich-text.js +1 -1
  30. package/dist/style.css +1 -1
  31. package/dist/{theme-BH-rGipZ.js → theme-BsOWAIi2.js} +31 -5
  32. package/dist/theme-BsOWAIi2.js.map +1 -0
  33. package/dist/theme.js +1 -1
  34. package/dist/{tree-list-BUfDQz3v.js → tree-list-WhISG-cz.js} +637 -488
  35. package/dist/tree-list-WhISG-cz.js.map +1 -0
  36. package/dist/{types-yjKBk07w.d.ts → types-DWA3enV6.d.ts} +22 -1
  37. package/package.json +2 -2
  38. package/dist/list-row-De9R2zKU.js.map +0 -1
  39. package/dist/param-editor-field-qEWoluWT.js.map +0 -1
  40. package/dist/rich-text-CQAntEuA.js.map +0 -1
  41. package/dist/theme-BH-rGipZ.js.map +0 -1
  42. package/dist/tree-list-BUfDQz3v.js.map +0 -1
@@ -7,14 +7,24 @@ import { Fragment as y, forwardRef as b, useEffect as x, useId as S, useRef as C
7
7
  import { Check as T, ChevronDown as E, ChevronRight as D, Search as O } from "lucide-react";
8
8
  //#region src/components/overlays/resource-context-menu.tsx
9
9
  var k = (e) => {
10
- let t = m(6), { actions: n, contentBackground: r, contentMinWidth: i } = e, a;
11
- t[0] === n ? a = t[1] : (a = n.map(M), t[0] = n, t[1] = a);
12
- let o;
13
- return t[2] !== r || t[3] !== i || t[4] !== a ? (o = /* @__PURE__ */ g(l, { children: /* @__PURE__ */ g(c.Positioner, { children: /* @__PURE__ */ g(c.Content, {
14
- minW: i,
15
- bg: r,
16
- children: a
17
- }) }) }), t[2] = r, t[3] = i, t[4] = a, t[5] = o) : o = t[5], o;
10
+ let n = m(9), { actions: r, contentBackground: i, contentMinWidth: a } = e, o;
11
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (o = { overscrollBehavior: "contain" }, n[0] = o) : o = n[0];
12
+ let s;
13
+ n[1] === r ? s = n[2] : (s = r.map(M), n[1] = r, n[2] = s);
14
+ let u;
15
+ n[3] === s ? u = n[4] : (u = /* @__PURE__ */ g(t, {
16
+ flex: "1",
17
+ minH: "0",
18
+ viewportProps: o,
19
+ children: s
20
+ }), n[3] = s, n[4] = u);
21
+ let d;
22
+ return n[5] !== i || n[6] !== a || n[7] !== u ? (d = /* @__PURE__ */ g(l, { children: /* @__PURE__ */ g(c.Positioner, { children: /* @__PURE__ */ g(c.Content, {
23
+ minW: a,
24
+ bg: i,
25
+ maxH: "var(--available-height)",
26
+ children: u
27
+ }) }) }), n[5] = i, n[6] = a, n[7] = u, n[8] = d) : d = n[8], d;
18
28
  }, A = (e) => {
19
29
  let t = m(13), { actions: n, children: r, contentMinWidth: i, contentBackground: a, positioning: o, closeOnSelect: s } = e, l = i === void 0 ? "17.5rem" : i, u = a === void 0 ? "bg" : a, d;
20
30
  t[0] === o ? d = t[1] : (d = o === void 0 ? { placement: "bottom-start" } : o, t[0] = o, t[1] = d);
@@ -1003,6 +1013,6 @@ function Ee(e) {
1003
1013
  return !e;
1004
1014
  }
1005
1015
  //#endregion
1006
- export { ne as a, re as i, de as n, A as o, se as r, j as s, H as t };
1016
+ export { re as a, j as c, I as i, de as n, ne as o, se as r, A as s, H as t };
1007
1017
 
1008
- //# sourceMappingURL=list-row-De9R2zKU.js.map
1018
+ //# sourceMappingURL=list-row-uqD-q4gv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-row-uqD-q4gv.js","names":["chakra","Menu","Portal","useMenu","ComponentProps","Fragment","ReactElement","ReactNode","ListRow","ScrollArea","MenuRootProps","Root","ResourceContextAction","key","label","commandId","onClick","Promise","isDisabled","icon","endContent","separatorBefore","ResourceContextMenuProps","actions","children","contentMinWidth","contentBackground","positioning","closeOnSelect","keepMountedWhenEmpty","ResourceActionMenuProps","ResourceMenuContent","props","$","_c","t0","Symbol","for","overscrollBehavior","t1","map","_temp","t2","t3","ResourceActionMenu","undefined","placement","length","t4","t5","t6","ResourceContextMenu","menu","api","getContextTriggerProps","triggerProps","t7","event","defaultPrevented","onContextMenu","t8","t9","t10","t11","action","_c","_temp","ScrollArea","_Fragment","Fragment","Box","HStack","Icon","Menu","Portal","Stack","Text","Fragment","ReactElement","ListRowActionMenuItem","ListRowMenuPlacement","ListRowMenuProps","items","open","placement","children","onOpenChange","onSelect","item","ListRowMenuItemIcon","props","$","_c","icon","t0","t1","ListRowMenu","undefined","Symbol","for","mainAxis","t2","offset","t3","details","t4","t5","t6","id","separatorBefore","disabled","readOnly","opacity","cursor","description","label","endContent","map","t7","_c","Fragment","Icon","ReactElement","ResourceContextAction","ResourceContextMenu","Tooltip","ListRowItem","ListRowMenu","createResourceContextActions","items","NonNullable","map","entry","key","id","label","icon","endContent","isDisabled","disabled","separatorBefore","onClick","onAction","ListRowChromeProps","item","menuOpen","children","onMenuOpenChange","open","onMenuSelect","ListRowChrome","props","$","_c","menuItems","length","t0","menuPlacement","tooltip","row","contextMenuItems","t1","t2","_c","Tooltip","HStack","StackProps","React","HeaderVariant","HeaderVariantStyles","h","px","headerVariantStyles","Record","main","narrow","input","HeaderProps","Omit","variant","Header","forwardRef","HTMLDivElement","props","ref","$","_c","children","rest","t0","undefined","t1","t2","_c","Input","InputGroup","Search","Ref","Header","SearchableMenuInputProps","inputRef","HTMLInputElement","value","placeholder","onValueChange","SearchableMenuInput","props","$","_c","t0","Symbol","for","t1","event","target","t2","_temp","event_0","stopPropagation","_c","_temp","Box","Icon","Menu","Portal","Check","ChevronDown","ElementType","ReactNode","useEffect","useRef","useState","Header","ListRow","ListRowItem","ScrollArea","SearchableMenuInput","MenuRootProps","React","ComponentProps","Root","MenuContentProps","Content","SearchableMenuItem","id","label","searchText","secondaryLabel","tooltipLabel","icon","variant","isDisabled","isSelected","onSelect","SearchableMenuParentList","items","T","selectedLabel","selectedIcon","ariaLabel","disabled","emptyState","filterItems","query","searchPlaceholder","showSearch","contentTestId","item","ListConfig","closeOnSelect","listId","SearchableMenuProps","trigger","header","width","maxListHeight","lazyMount","open","positioning","onOpenChange","onFocusOutside","portalled","parentList","filterSearchableMenuItems","normalizedQuery","trim","toLowerCase","filter","content","Boolean","join","includes","shouldResetSearchableMenuQuery","currentListId","nextListId","resolveActiveListConfig","isShowingParent","childConfig","SearchableMenu","props","$","_c","t0","t1","t2","t3","t4","t5","t6","undefined","hasParentList","internalOpen","setInternalOpen","setQuery","activeList","setActiveList","inputRef","isOpen","config","filteredItems","previousListIdRef","current","t7","timeout","setTimeout","focus","clearTimeout","t8","details","handleOpenChange","t9","details_0","find","i","value","handleMenuItemSelect","renderIcon","_temp","t10","Symbol","for","item_0","description","tooltip","buildRowItem","t11","_temp2","event_0","event","stopPropagation","_temp3","parentListHeader","resolvedHeader","shouldShowSeparator","searchInput","t12","t13","t14","t15","t16","t17","T0","t18","overscrollBehavior","t19","t20","t21","length","map","item_1","bg","t22","t23","t24","Positioner","menuPositioner","t25","t26","t27","t28","t29","_c","_temp","_temp2","parentListHeader","ScrollArea","IconButton","Menu","SearchableMenu","ListRow","ListRowAction","SearchableActionMenuProps","action","SearchableActionMenu","props","$","_c","t0","menuItems","t1","map","_temp","items","t2","icon","label","t3","searchPlaceholder","t4","emptyMenuLabel","t5","t6","_temp2","item","id","searchText","description","filter","Boolean","join","tooltipLabel","variant","const","onSelect","onAction","event","preventDefault","_c","_temp","_temp2","Box","HStack","IconButton","Menu","Portal","Fragment","ReactElement","Tooltip","ListRowAction","SearchableActionMenu","RowActionsProps","actions","context","sectionId","nodeId","alwaysVisible","keyedTooltip","action","child","tooltip","id","RowActions","props","$","_c","t0","undefined","length","t1","t2","t3","t4","Symbol","for","opacity","pointerEvents","t5","t6","menuItems","label","icon","map","_temp2","event_0","event","stopPropagation","onAction","_temp","item","separatorBefore","description","disabled","readOnly","endContent","Tooltip","Fragment","_c","_temp2","_temp","Box","HStack","Icon","Stack","Text","ChevronDown","ChevronRight","Tooltip","ListRowItem","ListRowProps","RowContentProps","RowActions","createResourceRowActions","item","showContextMenuTrigger","contextMenuItems","length","actions","inlineMenuItems","flatMap","action","menuItems","id","label","icon","onAction","nodeId","inlineIds","Set","map","menuItem","resourceMenuItems","filter","has","index","separatorBefore","resolveLabelColor","input","isEmptyStateVariant","isDisabled","tone","RowLabel","props","$","_c","textStyle","color","t0","RowDescription","description","marginLeft","RowContent","isExpanded","showChevron","variant","labelId","isDenseVariant","labelTextStyle","descriptionTextStyle","descriptionMarginLeft","iconPx","iconLabelGap","labelColor","iconColor","descriptionColor","t1","t2","width","height","t3","indicator","tooltip","t4","t5","t6","t7","t8","ListRowContent","undefined","endContent","_c","Tooltip","_Fragment","chakra","ComponentPropsWithoutRef","ListRowProps","ListRowRootProps","div","computePaddingLeft","depth","undefined","isFixedHeightDenseVariant","variant","resolveListRowSizing","hasDescription","rowHeight","minHeight","createRowBackgroundProps","input","isSelected","selectedBg","hoverBg","tone","NonNullable","bg","_hover","outline","outlineColor","outlineOffset","_active","rowLabelIds","labelId","hasEndContent","createListRowRootProps","rootProps","rowRole","className","isExpanded","showChevron","verticalPadding","paddingLeft","isDisabled","interactiveCursor","props","role","width","minWidth","maxWidth","height","display","alignItems","justifyContent","gap","px","py","pl","borderRadius","cursor","overflow","textAlign","color","textDecoration","chakra","forwardRef","ReactElement","KeyboardEvent","ReactKeyboardEvent","MouseEvent","ReactMouseEvent","useId","useState","ListRowItem","ListRowProps","ListRowChrome","ListRowContent","computePaddingLeft","createListRowRootProps","resolveListRowSizing","ListRow","HTMLElement","props","ref","$","_c","id","label","description","icon","iconColor","indicator","endContent","tooltip","disabled","isContainer","isNavigable","href","navigationIntent","menuItems","menuPlacement","contextMenuItems","actions","children","onActivate","depth","t0","isSelected","t1","isExpanded","t2","showExpandToggle","t3","showContextMenuTrigger","t4","variant","t5","tone","t6","selectedBg","t7","hoverBg","t8","asChild","t9","className","role","roleProp","onToggleExpand","onPointerMove","draggable","onDragStart","onDragOver","onDragEnd","onDrop","onClick","onKeyDown","rootProps","undefined","menuOpen","setMenuOpen","labelId","t10","item","t11","dragProps","hasChildren","length","hasMenuItems","hasActions","showChevron","isDisabled","t12","handleActivate","t13","event","defaultPrevented","preventDefault","handleClick","t14","event_0","_temp","handleMenuClick","t15","event_1","key","_temp2","handleKeyDown","hasDescription","paddingLeft","verticalPadding","t16","activationProps","rowHeight","minHeight","rowRole","rowProps","hasEndContent","Boolean","t17","content","t18","children_0","menuItem","onAction","wrap","t19","t20","t21","tabIndex","t22","current","current_0","_c","Tooltip$1","React","Fragment$1","ResourceMenuContent","$","c","props","t0","t1","actions","_temp$5","t2","ScrollArea$1","t3","contentBackground","contentMinWidth","Portal","Menu","ResourceActionMenu","positioning","children","t4","t5","t6","closeOnSelect","ResourceContextMenu","keepMountedWhenEmpty","menu","useMenu","triggerProps","t7","Fragment","event","t8","chakra","t9","t10","t11","action","ListRow","ListRowMenuItemIcon","item","Icon","Box","ListRowMenu","placement","onOpenChange","details","items","onSelect","HStack","Stack","Text","open","createResourceContextActions","entry","ListRowChrome","menuOpen","onMenuOpenChange","onMenuSelect","row","headerVariantStyles","Header","rest","ref","SearchableMenuInput","Search","onValueChange","inputRef","placeholder","value","InputGroup","Input","_temp$4","event_0","filterSearchableMenuItems","normalizedQuery","query","shouldResetSearchableMenuQuery","currentListId","nextListId","resolveActiveListConfig","isShowingParent","parentList","childConfig","SearchableMenu","filterItems","width","maxListHeight","showSearch","lazyMount","portalled","hasParentList","internalOpen","setInternalOpen","useState","setQuery","activeList","setActiveList","useRef","isOpen","config","listId","filteredItems","previousListIdRef","useEffect","timeout","handleOpenChange","i","details_0","handleMenuItemSelect","renderIcon","_temp$3","item_0","buildRowItem","_temp2$3","_temp3","ChevronDown","resolvedHeader","header","shouldShowSeparator","searchInput","t12","t13","t17","T0","t18","t21","item_1","Check","t22","t23","t24","menuPositioner","t25","t26","trigger","t27","t28","t29","onFocusOutside","icon","current","SearchableActionMenu","_temp$2","IconButton","_temp2$2","keyedTooltip","child","RowActions","alwaysVisible","context","_temp2$1","_temp$1","createResourceRowActions","contextMenuItems","showContextMenuTrigger","inlineMenuItems","inlineIds","menuItem","resourceMenuItems","index","resolveLabelColor","input","RowLabel","label","color","textStyle","RowDescription","description","marginLeft","RowContent","isEmptyStateVariant","variant","isDenseVariant","labelTextStyle","descriptionTextStyle","descriptionMarginLeft","iconPx","iconLabelGap","isDisabled","tone","labelColor","iconColor","descriptionColor","isExpanded","showChevron","ChevronRight","labelId","ListRowContent","computePaddingLeft","depth","isFixedHeightDenseVariant","resolveListRowSizing","hasDescription","createRowBackgroundProps","rowLabelIds","hasEndContent","createListRowRootProps","interactiveCursor","forwardRef","roleProp","rootProps","isSelected","showExpandToggle","selectedBg","hoverBg","asChild","setMenuOpen","useId","disabled","endContent","href","id","indicator","isContainer","isNavigable","menuItems","menuPlacement","navigationIntent","onActivate","tooltip","draggable","onDragEnd","onDragOver","onDragStart","onDrop","dragProps","hasChildren","hasMenuItems","hasActions","onToggleExpand","handleActivate","onClick","handleClick","t14","_temp","handleMenuClick","t15","onKeyDown","event_1","_temp2","handleKeyDown","paddingLeft","verticalPadding","t16","activationProps","rowRole","rowProps","content","children_0","wrap","t19","onPointerMove","t20","current_0"],"sources":["../src/components/overlays/resource-context-menu.tsx","../src/components/list-row/list-row-menu.tsx","../src/components/list-row/list-row-chrome.tsx","../src/components/layout/header.tsx","../src/components/overlays/searchable-menu-input.tsx","../src/components/overlays/searchable-menu.tsx","../src/components/list-row/searchable-action-menu.tsx","../src/components/list-row/list-row-actions.tsx","../src/components/list-row/list-row-content.tsx","../src/components/list-row/list-row-root-props.ts","../src/components/list-row/list-row.tsx"],"sourcesContent":["import { chakra, Menu, Portal, useMenu } from \"@chakra-ui/react\";\nimport { type ComponentProps, Fragment, type ReactElement, type ReactNode } from \"react\";\nimport { ListRow } from \"@/components/list-row/list-row\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\n\ntype MenuRootProps = ComponentProps<typeof Menu.Root>;\n\nexport interface ResourceContextAction {\n key: string;\n label: string;\n commandId?: string;\n onClick: () => Promise<void> | void;\n isDisabled?: boolean;\n icon?: ReactNode;\n endContent?: ReactNode;\n separatorBefore?: boolean;\n}\n\ninterface ResourceContextMenuProps {\n actions: ResourceContextAction[];\n children: ReactNode;\n contentMinWidth?: string;\n contentBackground?: string;\n positioning?: MenuRootProps[\"positioning\"];\n /** Keep the menu open after selecting an item — useful for menus that toggle several entries in one pass. */\n closeOnSelect?: MenuRootProps[\"closeOnSelect\"];\n /** Preserve the trigger tree while actions load or change. */\n keepMountedWhenEmpty?: boolean;\n}\n\nexport interface ResourceActionMenuProps {\n actions: ResourceContextAction[];\n children: ReactElement;\n contentMinWidth?: string;\n contentBackground?: string;\n positioning?: MenuRootProps[\"positioning\"];\n closeOnSelect?: MenuRootProps[\"closeOnSelect\"];\n}\n\nconst ResourceMenuContent = (props: {\n actions: ResourceContextAction[];\n contentMinWidth: string;\n contentBackground: string;\n}) => {\n const { actions, contentBackground, contentMinWidth } = props;\n\n return (\n <Portal>\n <Menu.Positioner>\n {/* Long menus, such as Sidenav customization, scroll inside the space left in the viewport. */}\n <Menu.Content minW={contentMinWidth} bg={contentBackground} maxH=\"var(--available-height)\">\n <ScrollArea flex=\"1\" minH=\"0\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n {actions.map((action) => (\n <Fragment key={action.key}>\n {action.separatorBefore ? <Menu.Separator /> : null}\n <Menu.Item value={action.key} disabled={action.isDisabled} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label={action.label}\n icon={action.icon}\n endContent={action.endContent}\n disabled={action.isDisabled}\n onActivate={action.onClick}\n />\n </Menu.Item>\n </Fragment>\n ))}\n </ScrollArea>\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n );\n};\n\nexport const ResourceActionMenu = (props: ResourceActionMenuProps) => {\n const {\n actions,\n children,\n contentMinWidth = \"17.5rem\",\n contentBackground = \"bg\",\n positioning = { placement: \"bottom-start\" },\n closeOnSelect,\n } = props;\n\n if (actions.length === 0) return children;\n\n return (\n <Menu.Root positioning={positioning} closeOnSelect={closeOnSelect}>\n <Menu.Trigger asChild>{children}</Menu.Trigger>\n <ResourceMenuContent actions={actions} contentMinWidth={contentMinWidth} contentBackground={contentBackground} />\n </Menu.Root>\n );\n};\n\nexport const ResourceContextMenu = (props: ResourceContextMenuProps) => {\n const {\n actions,\n children,\n contentMinWidth = \"17.5rem\",\n contentBackground = \"bg\",\n positioning = { placement: \"bottom-start\" },\n closeOnSelect,\n keepMountedWhenEmpty = false,\n } = props;\n const menu = useMenu({ positioning, closeOnSelect });\n const triggerProps = menu.api.getContextTriggerProps();\n\n if (actions.length === 0 && !keepMountedWhenEmpty) {\n return <>{children}</>;\n }\n\n return (\n <>\n <chakra.div\n asChild\n {...triggerProps}\n onContextMenu={(event) => {\n if (!event.defaultPrevented) triggerProps.onContextMenu?.(event);\n }}\n >\n {children}\n </chakra.div>\n {/* Descendant resource menus are independent menus, not submenus. */}\n <Menu.RootProvider value={menu} lazyMount unmountOnExit>\n {actions.length > 0 ? (\n <ResourceMenuContent\n actions={actions}\n contentMinWidth={contentMinWidth}\n contentBackground={contentBackground}\n />\n ) : null}\n </Menu.RootProvider>\n </>\n );\n};\n","import { Box, HStack, Icon, Menu, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { Fragment, type ReactElement } from \"react\";\nimport type { ListRowActionMenuItem, ListRowMenuPlacement } from \"./list-row.types\";\n\ninterface ListRowMenuProps {\n items: ListRowActionMenuItem[];\n open: boolean;\n placement?: ListRowMenuPlacement;\n children: ReactElement;\n onOpenChange: (open: boolean) => void;\n onSelect: (item: ListRowActionMenuItem) => void;\n}\n\nconst ListRowMenuItemIcon = (props: { item: ListRowActionMenuItem }) => {\n const { item } = props;\n if (!item.icon) return null;\n\n return (\n <Box color=\"fg.muted\" flexShrink={0} display=\"inline-flex\">\n {typeof item.icon === \"function\" ? <Icon as={item.icon} boxSize=\"14px\" /> : item.icon}\n </Box>\n );\n};\n\nexport const ListRowMenu = (props: ListRowMenuProps) => {\n const { children, items, onOpenChange, onSelect, open, placement = \"right-start\" } = props;\n\n return (\n <Menu.Root\n open={open}\n positioning={{ placement, offset: { mainAxis: 4 } }}\n onOpenChange={(details) => onOpenChange(details.open)}\n >\n <Menu.Trigger asChild>{children}</Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content minW=\"200px\" bg=\"bg\">\n {items.map((item) => (\n <Fragment key={item.id}>\n {item.separatorBefore ? <Menu.Separator /> : null}\n <Menu.Item\n value={item.id}\n disabled={item.disabled || item.readOnly}\n _disabled={item.readOnly ? { opacity: 1, cursor: \"default\" } : undefined}\n onClick={() => {\n if (!item.readOnly) onSelect(item);\n }}\n >\n <HStack gap=\"2\" minW=\"0\" w=\"full\" justify=\"space-between\" alignItems=\"center\">\n <HStack gap=\"2\" minW=\"0\" flex=\"1\" alignItems={item.description ? \"flex-start\" : \"center\"}>\n <ListRowMenuItemIcon item={item} />\n <Stack gap=\"0\" minW=\"0\">\n <Text textStyle=\"label/S/regular\" truncate>\n {item.label}\n </Text>\n {item.description ? (\n <Text textStyle=\"label/XS\" color=\"fg.menu-item.secondary\" truncate>\n {item.description}\n </Text>\n ) : null}\n </Stack>\n </HStack>\n {item.endContent ? <Box flexShrink={0}>{item.endContent}</Box> : null}\n </HStack>\n </Menu.Item>\n </Fragment>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\n","import { Icon } from \"@chakra-ui/react\";\nimport type { ReactElement } from \"react\";\nimport { type ResourceContextAction, ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport type { ListRowItem } from \"./list-row.types\";\nimport { ListRowMenu } from \"./list-row-menu\";\n\nconst createResourceContextActions = (items: NonNullable<ListRowItem[\"contextMenuItems\"]>): ResourceContextAction[] =>\n items.map((entry) => ({\n key: entry.id,\n label: entry.label,\n icon: typeof entry.icon === \"function\" ? <Icon as={entry.icon} boxSize=\"16px\" /> : entry.icon,\n endContent: entry.endContent,\n isDisabled: entry.disabled,\n separatorBefore: entry.separatorBefore,\n onClick: () => entry.onAction?.(),\n }));\n\ninterface ListRowChromeProps {\n item: ListRowItem;\n menuOpen: boolean;\n children: ReactElement;\n onMenuOpenChange: (open: boolean) => void;\n onMenuSelect: (item: NonNullable<ListRowItem[\"menuItems\"]>[number]) => void;\n}\n\nexport const ListRowChrome = (props: ListRowChromeProps) => {\n const { children, item, menuOpen, onMenuOpenChange, onMenuSelect } = props;\n\n if (item.menuItems && item.menuItems.length > 0) {\n return (\n <ListRowMenu\n items={item.menuItems}\n open={menuOpen}\n placement={item.menuPlacement}\n onOpenChange={onMenuOpenChange}\n onSelect={onMenuSelect}\n >\n {children}\n </ListRowMenu>\n );\n }\n\n const row = item.tooltip ? <Tooltip content={item.tooltip}>{children}</Tooltip> : children;\n if (!item.contextMenuItems || item.contextMenuItems.length === 0) return row;\n\n return <ResourceContextMenu actions={createResourceContextActions(item.contextMenuItems)}>{row}</ResourceContextMenu>;\n};\n","import { HStack, type StackProps } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport type HeaderVariant = \"main\" | \"narrow\" | \"input\";\n\ninterface HeaderVariantStyles {\n h: string;\n px: string;\n}\n\nconst headerVariantStyles: Record<HeaderVariant, HeaderVariantStyles> = {\n main: {\n h: \"2.5rem\",\n px: \"xs\",\n },\n narrow: {\n h: \"2rem\",\n px: \"xs\",\n },\n input: {\n h: \"3rem\",\n px: \"0\",\n },\n};\n\nexport interface HeaderProps extends Omit<StackProps, \"variant\"> {\n variant?: HeaderVariant;\n}\n\nexport const Header = React.forwardRef<HTMLDivElement, HeaderProps>(function Header(props, ref) {\n const { variant = \"main\", children, ...rest } = props;\n\n return (\n <HStack ref={ref} as=\"header\" alignItems=\"center\" borderWidth=\"0\" {...headerVariantStyles[variant]} {...rest}>\n {children}\n </HStack>\n );\n});\n","import { Input, InputGroup } from \"@chakra-ui/react\";\nimport { Search } from \"lucide-react\";\nimport type { Ref } from \"react\";\nimport { Header } from \"@/components/layout/header\";\n\ninterface SearchableMenuInputProps {\n inputRef?: Ref<HTMLInputElement>;\n value: string;\n placeholder: string;\n onValueChange: (value: string) => void;\n}\n\nexport const SearchableMenuInput = (props: SearchableMenuInputProps) => {\n const { inputRef, value, placeholder, onValueChange } = props;\n\n return (\n <Header variant=\"input\" borderBottomWidth=\"1px\" borderColor=\"border.subtle\" flexShrink={0}>\n <InputGroup startElement={<Search size={14} />} width=\"full\">\n <Input\n ref={inputRef}\n mx=\"xs\"\n variant=\"borderless\"\n value={value}\n placeholder={placeholder}\n aria-label={placeholder}\n autoComplete=\"off\"\n onChange={(event) => onValueChange(event.target.value)}\n onKeyDown={(event) => event.stopPropagation()}\n />\n </InputGroup>\n </Header>\n );\n};\n","import { Box, Icon, Menu, Portal } from \"@chakra-ui/react\";\nimport { Check, ChevronDown } from \"lucide-react\";\nimport { type ElementType, type ReactNode, useEffect, useRef, useState } from \"react\";\nimport { Header } from \"@/components/layout/header\";\nimport { ListRow } from \"@/components/list-row/list-row\";\nimport type { ListRowItem } from \"@/components/list-row/list-row.types\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { SearchableMenuInput } from \"./searchable-menu-input\";\n\ntype MenuRootProps = React.ComponentProps<typeof Menu.Root>;\ntype MenuContentProps = React.ComponentProps<typeof Menu.Content>;\n\nexport interface SearchableMenuItem {\n id: string;\n label: string;\n searchText?: string;\n secondaryLabel?: string;\n tooltipLabel?: ReactNode;\n icon?: ElementType;\n variant?: \"default\" | \"compact\" | \"full-width\";\n isDisabled?: boolean;\n isSelected?: boolean;\n onSelect?: () => void;\n}\n\nexport interface SearchableMenuParentList<T extends SearchableMenuItem> {\n items: T[];\n selectedLabel: string;\n selectedIcon?: ElementType;\n ariaLabel?: string;\n disabled?: boolean;\n emptyState?: ReactNode;\n filterItems?: (items: T[], query: string) => T[];\n searchPlaceholder?: string;\n showSearch?: boolean;\n contentTestId?: string;\n onSelect?: (item: T) => void;\n}\n\ninterface ListConfig<T extends SearchableMenuItem> {\n items: T[];\n filterItems: (items: T[], query: string) => T[];\n showSearch: boolean;\n searchPlaceholder: string;\n emptyState: ReactNode;\n contentTestId?: string;\n closeOnSelect: boolean;\n listId: string;\n}\n\ninterface SearchableMenuProps<T extends SearchableMenuItem> {\n trigger: ReactNode;\n items: T[];\n searchPlaceholder: string;\n emptyState: ReactNode;\n filterItems?: (items: T[], query: string) => T[];\n listId?: string;\n header?: ReactNode;\n width?: MenuContentProps[\"width\"];\n maxListHeight?: string;\n showSearch?: boolean;\n closeOnSelect?: MenuRootProps[\"closeOnSelect\"];\n lazyMount?: MenuRootProps[\"lazyMount\"];\n open?: MenuRootProps[\"open\"];\n positioning?: MenuRootProps[\"positioning\"];\n onOpenChange?: MenuRootProps[\"onOpenChange\"];\n onFocusOutside?: MenuRootProps[\"onFocusOutside\"];\n contentTestId?: string;\n portalled?: boolean;\n parentList?: SearchableMenuParentList<T>;\n}\n\nexport const filterSearchableMenuItems = <T extends SearchableMenuItem>(items: T[], query: string) => {\n const normalizedQuery = query.trim().toLowerCase();\n\n if (!normalizedQuery) {\n return items;\n }\n\n return items.filter((item) => {\n const content = [item.label, item.searchText].filter(Boolean).join(\" \").toLowerCase();\n return content.includes(normalizedQuery);\n });\n};\n\nexport const shouldResetSearchableMenuQuery = (currentListId?: string, nextListId?: string) => {\n if (!currentListId || !nextListId) {\n return false;\n }\n\n return currentListId !== nextListId;\n};\n\nexport const resolveActiveListConfig = <T extends SearchableMenuItem>(\n isShowingParent: boolean,\n parentList: SearchableMenuParentList<T> | undefined,\n childConfig: ListConfig<T>,\n): ListConfig<T> => {\n if (!isShowingParent || !parentList) {\n return childConfig;\n }\n\n return {\n items: parentList.items,\n filterItems: parentList.filterItems ?? childConfig.filterItems,\n showSearch: parentList.showSearch ?? childConfig.showSearch,\n searchPlaceholder: parentList.searchPlaceholder ?? childConfig.searchPlaceholder,\n emptyState: parentList.emptyState ?? childConfig.emptyState,\n contentTestId: parentList.contentTestId ?? childConfig.contentTestId,\n closeOnSelect: false,\n listId: \"parent\",\n };\n};\n\nexport const SearchableMenu = <T extends SearchableMenuItem>(props: SearchableMenuProps<T>) => {\n const {\n trigger,\n items,\n searchPlaceholder,\n emptyState,\n filterItems = filterSearchableMenuItems,\n listId,\n header,\n width = \"260px\",\n maxListHeight = \"18rem\",\n showSearch = true,\n closeOnSelect = true,\n lazyMount = false,\n open,\n positioning,\n onOpenChange,\n onFocusOutside,\n contentTestId,\n portalled = true,\n parentList,\n } = props;\n const hasParentList = Boolean(parentList);\n const [internalOpen, setInternalOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const [activeList, setActiveList] = useState<\"child\" | \"parent\">(\"child\");\n const inputRef = useRef<HTMLInputElement>(null);\n const isOpen = open ?? internalOpen;\n const isShowingParent = hasParentList && activeList === \"parent\";\n\n const childConfig: ListConfig<T> = {\n items,\n filterItems,\n showSearch,\n searchPlaceholder,\n emptyState,\n contentTestId,\n closeOnSelect,\n listId: hasParentList ? \"child\" : (listId ?? \"\"),\n };\n\n const config = resolveActiveListConfig(isShowingParent, parentList, childConfig);\n const filteredItems = config.filterItems(config.items, query);\n const previousListIdRef = useRef(config.listId);\n\n useEffect(() => {\n if (!isOpen) {\n previousListIdRef.current = config.listId;\n return;\n }\n\n if (shouldResetSearchableMenuQuery(previousListIdRef.current, config.listId)) {\n setQuery(\"\");\n }\n\n previousListIdRef.current = config.listId;\n }, [isOpen, config.listId]);\n\n useEffect(() => {\n if (!isOpen || !config.showSearch) {\n return;\n }\n\n const timeout = setTimeout(() => inputRef.current?.focus(), 0);\n return () => clearTimeout(timeout);\n }, [isOpen, config.showSearch]);\n\n const handleOpenChange: NonNullable<MenuRootProps[\"onOpenChange\"]> = (details) => {\n if (open === undefined) {\n setInternalOpen(details.open);\n }\n\n setQuery(\"\");\n\n if (details.open && hasParentList) {\n setActiveList(\"child\");\n }\n\n onOpenChange?.(details);\n };\n\n const handleMenuItemSelect = (details: { value: string }) => {\n if (!isShowingParent || !parentList) return;\n\n const item = parentList.items.find((i) => i.id === details.value);\n if (!item) return;\n\n parentList.onSelect?.(item);\n setActiveList(\"child\");\n };\n\n const renderIcon = (icon: ElementType | undefined) => (icon ? <Icon as={icon} boxSize=\"14px\" /> : undefined);\n\n const buildRowItem = (item: T): ListRowItem => ({\n id: item.id,\n label: item.label,\n description: item.secondaryLabel,\n icon: renderIcon(item.icon),\n disabled: item.isDisabled,\n tooltip: item.tooltipLabel,\n });\n\n const parentListHeader = parentList ? (\n <Header\n as=\"div\"\n role=\"menuitem\"\n aria-label={parentList.ariaLabel}\n aria-disabled={parentList.disabled || undefined}\n tabIndex={parentList.disabled ? -1 : 0}\n variant=\"narrow\"\n px=\"0\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n flexShrink={0}\n onPointerDownCapture={(event) => event.stopPropagation()}\n onClickCapture={(event) => {\n event.stopPropagation();\n if (parentList.disabled) return;\n setActiveList((current) => (current === \"child\" ? \"parent\" : \"child\"));\n }}\n >\n <ListRow\n asChild\n role=\"presentation\"\n variant=\"full-width\"\n id=\"__parent-toggle\"\n label={parentList.selectedLabel}\n icon={renderIcon(parentList.selectedIcon)}\n disabled={parentList.disabled}\n endContent={parentList.disabled ? undefined : <Icon as={ChevronDown} boxSize=\"14px\" />}\n />\n </Header>\n ) : null;\n\n const resolvedHeader = parentList ? parentListHeader : header;\n const shouldShowSeparator = Boolean(resolvedHeader) && !config.showSearch;\n\n const searchInput = config.showSearch ? (\n <SearchableMenuInput\n inputRef={inputRef}\n value={query}\n placeholder={config.searchPlaceholder}\n onValueChange={setQuery}\n />\n ) : null;\n\n const menuPositioner = (\n <Menu.Positioner>\n <Menu.Content w={width} bg=\"bg\" gap=\"0\" p=\"0\">\n {resolvedHeader}\n {searchInput}\n {shouldShowSeparator ? <Menu.Separator margin=\"0\" /> : null}\n <ScrollArea\n maxH={maxListHeight}\n data-testid={config.contentTestId}\n viewportProps={{ overscrollBehavior: \"contain\" }}\n p=\"0\"\n gap=\"0\"\n >\n {filteredItems.length > 0\n ? filteredItems.map((item) => (\n <Menu.Item key={item.id} value={item.id} disabled={item.isDisabled} onClick={item.onSelect} asChild>\n <Box\n bg=\"transparent\"\n h=\"auto\"\n p=\"0\"\n _hover={{ bg: \"transparent\" }}\n _focus={{ bg: \"transparent\" }}\n _active={{ bg: \"transparent\" }}\n >\n <ListRow\n asChild\n {...buildRowItem(item)}\n role=\"presentation\"\n variant={item.variant ?? \"full-width\"}\n isSelected={item.isSelected}\n endContent={item.isSelected ? <Icon as={Check} boxSize=\"3.5\" /> : undefined}\n />\n </Box>\n </Menu.Item>\n ))\n : config.emptyState}\n </ScrollArea>\n </Menu.Content>\n </Menu.Positioner>\n );\n\n return (\n <Menu.Root\n lazyMount={lazyMount}\n closeOnSelect={config.closeOnSelect}\n open={open}\n positioning={positioning}\n onOpenChange={handleOpenChange}\n onFocusOutside={onFocusOutside}\n onSelect={hasParentList ? handleMenuItemSelect : undefined}\n >\n <Menu.Trigger asChild>{trigger}</Menu.Trigger>\n <Portal disabled={!portalled}>{menuPositioner}</Portal>\n </Menu.Root>\n );\n};\n","import { IconButton, Menu } from \"@chakra-ui/react\";\nimport { SearchableMenu } from \"@/components/overlays/searchable-menu\";\nimport { ListRow } from \"./list-row\";\nimport type { ListRowAction } from \"./list-row.types\";\n\ninterface SearchableActionMenuProps {\n action: ListRowAction;\n}\n\nexport const SearchableActionMenu = (props: SearchableActionMenuProps) => {\n const { action } = props;\n const items = (action.menuItems ?? []).map((item) => ({\n id: item.id,\n label: item.label,\n searchText: [item.label, item.description].filter(Boolean).join(\" \"),\n tooltipLabel: item.description,\n variant: \"full-width\" as const,\n onSelect: () => item.onAction?.(),\n }));\n\n return (\n <SearchableMenu\n trigger={\n <IconButton variant=\"ghost\" size=\"2xs\" aria-label={action.label}>\n {action.icon}\n </IconButton>\n }\n items={items}\n searchPlaceholder={action.searchPlaceholder ?? \"Search...\"}\n emptyState={\n <Menu.Item value=\"empty\" asChild>\n <ListRow asChild variant=\"full-width\" label={action.emptyMenuLabel ?? \"No results found\"} disabled />\n </Menu.Item>\n }\n onFocusOutside={(event) => event.preventDefault()}\n />\n );\n};\n","import { Box, HStack, IconButton, Menu, Portal } from \"@chakra-ui/react\";\nimport { Fragment, type ReactElement } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport type { ListRowAction } from \"./list-row.types\";\nimport { SearchableActionMenu } from \"./searchable-action-menu\";\n\ninterface RowActionsProps {\n actions: ListRowAction[];\n context: { sectionId?: string; nodeId?: string };\n alwaysVisible?: boolean;\n}\n\nconst keyedTooltip = (action: ListRowAction, child: ReactElement) => {\n if (action.tooltip) {\n return (\n <Tooltip key={action.id} content={action.tooltip} openDelay={300}>\n {child}\n </Tooltip>\n );\n }\n return <Fragment key={action.id}>{child}</Fragment>;\n};\n\nexport const RowActions = (props: RowActionsProps) => {\n const { actions, alwaysVisible = false, context } = props;\n if (actions.length === 0) return null;\n\n return (\n <HStack\n gap=\"0\"\n opacity={alwaysVisible ? \"1\" : \"0\"}\n pointerEvents={alwaysVisible ? \"auto\" : \"none\"}\n _groupHover={{ opacity: \"1\", pointerEvents: \"auto\" }}\n _groupFocusWithin={{ opacity: \"1\", pointerEvents: \"auto\" }}\n transition=\"opacity 120ms ease\"\n onClick={(event) => event.stopPropagation()}\n >\n {actions.map((action) => {\n if (action.menuItems && action.menuItems.length >= 8) {\n return <SearchableActionMenu key={action.id} action={action} />;\n }\n\n if (action.menuItems && action.menuItems.length > 0) {\n return keyedTooltip(\n action,\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton variant=\"ghost\" size=\"2xs\" aria-label={action.label}>\n {action.icon}\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content minW=\"160px\" bg=\"bg\">\n {action.menuItems.map((item) => (\n <Fragment key={item.id}>\n {item.separatorBefore ? <Menu.Separator /> : null}\n <Tooltip content={item.description} disabled={!item.description} openDelay={300}>\n <Menu.Item\n value={item.id}\n disabled={item.disabled || item.readOnly}\n onClick={() => {\n if (!item.readOnly) item.onAction?.();\n }}\n >\n <HStack gap=\"2\" minW=\"0\" w=\"full\" justify=\"space-between\">\n <HStack gap=\"2\" minW=\"0\">\n {item.icon ? <Box>{item.icon as never}</Box> : null}\n <Box minW=\"0\">{item.label}</Box>\n </HStack>\n {item.endContent ? <Box flexShrink={0}>{item.endContent}</Box> : null}\n </HStack>\n </Menu.Item>\n </Tooltip>\n </Fragment>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>,\n );\n }\n\n return keyedTooltip(\n action,\n <IconButton\n variant=\"ghost\"\n size=\"2xs\"\n aria-label={action.label}\n onClick={(event) => {\n event.stopPropagation();\n action.onAction?.(context);\n }}\n >\n {action.icon}\n </IconButton>,\n );\n })}\n </HStack>\n );\n};\n","import { Box, HStack, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport type { ListRowItem, ListRowProps, RowContentProps } from \"./list-row.types\";\nimport { RowActions } from \"./list-row-actions\";\n\nexport const createResourceRowActions = (item: ListRowItem, showContextMenuTrigger = false) => {\n const contextMenuItems = item.contextMenuItems ?? [];\n if (contextMenuItems.length === 0 || !showContextMenuTrigger) return item.actions ?? [];\n\n const inlineMenuItems =\n item.actions?.flatMap((action) =>\n action.menuItems?.length\n ? action.menuItems\n : [\n {\n id: action.id,\n label: action.label,\n icon: action.icon,\n onAction: () => action.onAction?.({ nodeId: item.id }),\n },\n ],\n ) ?? [];\n const inlineIds = new Set(inlineMenuItems.map((menuItem) => menuItem.id));\n const resourceMenuItems = contextMenuItems\n .filter((menuItem) => !inlineIds.has(menuItem.id))\n .map((menuItem, index) => ({\n ...menuItem,\n separatorBefore: menuItem.separatorBefore || (index === 0 && inlineMenuItems.length > 0),\n }));\n\n return [\n {\n id: \"resource-actions\",\n label: \"Resource actions\",\n icon: <Icon as={ChevronDown} boxSize=\"14px\" />,\n menuItems: [...inlineMenuItems, ...resourceMenuItems],\n },\n ];\n};\n\nconst resolveLabelColor = (input: {\n isEmptyStateVariant: boolean;\n isDisabled: boolean;\n tone: ListRowProps[\"tone\"];\n}) => {\n if (input.isEmptyStateVariant) return \"fg.menu-item.secondary\";\n if (input.isDisabled) return \"fg.muted\";\n if (input.tone === \"danger\") return \"red.500\";\n return \"fg\";\n};\n\nconst RowLabel = (props: { label: ListRowItem[\"label\"]; textStyle: string; color: string }) => {\n const { label, textStyle, color } = props;\n\n if (typeof label === \"string\") {\n return (\n <Text textStyle={textStyle} color={color} truncate>\n {label}\n </Text>\n );\n }\n\n return (\n <Box minW=\"0\" maxW=\"full\" overflow=\"hidden\" color={color}>\n {label}\n </Box>\n );\n};\n\nconst RowDescription = (props: {\n description: ListRowItem[\"description\"];\n textStyle: string;\n color: string;\n marginLeft: string;\n}) => {\n const { description, textStyle, color, marginLeft } = props;\n if (!description) return null;\n\n if (typeof description === \"string\") {\n return (\n <Text ml={marginLeft} textStyle={textStyle} color={color} truncate>\n {description}\n </Text>\n );\n }\n\n return (\n <Box ml={marginLeft} minW=\"0\" maxW=\"full\" overflow=\"hidden\">\n {description}\n </Box>\n );\n};\n\nconst RowContent = (props: RowContentProps & { labelId: string }) => {\n const { item, isExpanded, showChevron, isDisabled, variant, tone, labelId } = props;\n const isEmptyStateVariant = variant === \"empty-state\";\n const isDenseVariant =\n variant === \"compact\" ||\n variant === \"collection\" ||\n variant === \"full-width\" ||\n variant === \"tree\" ||\n isEmptyStateVariant;\n const labelTextStyle = isDenseVariant ? \"label/S/regular\" : \"label/M/regular\";\n const descriptionTextStyle = isDenseVariant ? \"label/XS\" : \"label/S/regular\";\n const descriptionMarginLeft = isDenseVariant ? \"0\" : \"2px\";\n const iconPx = variant === \"tree\" || variant === \"collection\" ? \"16px\" : \"14px\";\n const iconLabelGap = variant === \"collection\" ? \"compact\" : variant === \"tree\" ? \"1\" : \"2\";\n\n const labelColor = resolveLabelColor({\n isEmptyStateVariant,\n isDisabled,\n tone,\n });\n const iconColor = item.iconColor ?? (tone === \"danger\" ? \"red.500\" : \"fg.muted\");\n const descriptionColor = tone === \"danger\" ? \"red.400\" : \"fg.menu-item.secondary\";\n\n return (\n <HStack id={labelId} gap=\"2\" minW=\"0\" flex=\"1\" overflow=\"hidden\" alignItems=\"center\">\n {showChevron ? (\n <Box color=\"fg.muted\" flexShrink={0} display=\"flex\" alignItems=\"center\">\n <Icon\n as={ChevronRight}\n boxSize=\"12px\"\n transform={isExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\"}\n transition=\"transform 120ms ease\"\n />\n </Box>\n ) : null}\n <Stack gap=\"0\" minW=\"0\" flex=\"1\">\n <HStack gap={iconLabelGap} minW=\"0\" alignItems=\"center\">\n {item.icon ? (\n <Box\n color={iconColor}\n flexShrink={0}\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n boxSize={iconPx}\n fontSize={iconPx}\n lineHeight=\"1\"\n css={{ \"& > svg\": { width: iconPx, height: iconPx } }}\n >\n {item.icon}\n </Box>\n ) : null}\n {item.indicator ? (\n <Tooltip content={item.indicator.tooltip} disabled={!item.indicator.tooltip} openDelay={300}>\n <Box color={item.indicator.color ?? \"fg.muted\"} flexShrink={0}>\n {item.indicator.icon}\n </Box>\n </Tooltip>\n ) : null}\n <RowLabel label={item.label} textStyle={labelTextStyle} color={labelColor} />\n </HStack>\n <RowDescription\n description={item.description}\n textStyle={descriptionTextStyle}\n color={descriptionColor}\n marginLeft={descriptionMarginLeft}\n />\n </Stack>\n </HStack>\n );\n};\n\nexport const ListRowContent = (props: {\n labelId: string;\n item: ListRowItem;\n isExpanded: boolean;\n showChevron: boolean;\n isDisabled: boolean;\n tone: ListRowProps[\"tone\"];\n variant: ListRowProps[\"variant\"];\n showContextMenuTrigger: boolean;\n}) => {\n const {\n labelId,\n item,\n isDisabled,\n isExpanded,\n showChevron,\n tone = \"default\",\n variant = \"default\",\n showContextMenuTrigger,\n } = props;\n const actions = createResourceRowActions(item, showContextMenuTrigger);\n\n return (\n <>\n <RowContent\n labelId={labelId}\n item={item}\n isExpanded={isExpanded}\n showChevron={showChevron}\n isDisabled={isDisabled}\n tone={tone}\n variant={variant}\n />\n {item.endContent ? (\n <Box id={`${labelId}-end`} flexShrink={0} color=\"fg.muted\" display=\"flex\" alignItems=\"center\">\n {item.endContent}\n </Box>\n ) : null}\n {actions.length > 0 ? (\n <RowActions\n actions={actions}\n context={{ nodeId: item.id }}\n alwaysVisible={showContextMenuTrigger && (item.contextMenuItems?.length ?? 0) > 0}\n />\n ) : null}\n </>\n );\n};\n","import type { chakra } from \"@chakra-ui/react\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport type { ListRowProps } from \"./list-row.types\";\n\ntype ListRowRootProps = ComponentPropsWithoutRef<typeof chakra.div>;\n\nexport const computePaddingLeft = (depth: number) => {\n if (depth <= 0) return undefined;\n return `calc(var(--chakra-spacing-1) + ${depth} * 12px)`;\n};\n\nconst isFixedHeightDenseVariant = (variant: ListRowProps[\"variant\"]) =>\n variant === \"compact\" || variant === \"full-width\" || variant === \"empty-state\";\n\nexport const resolveListRowSizing = (variant: ListRowProps[\"variant\"], hasDescription: boolean) => {\n if (variant === \"collection\" && !hasDescription) {\n return { rowHeight: \"collection-row\", minHeight: undefined };\n }\n\n if (isFixedHeightDenseVariant(variant) && !hasDescription) {\n return { rowHeight: \"1.75rem\", minHeight: undefined };\n }\n\n return {\n rowHeight: \"auto\",\n minHeight: variant === \"default\" ? \"2.25rem\" : \"1.75rem\",\n };\n};\n\nconst createRowBackgroundProps = (input: {\n isSelected: boolean;\n selectedBg: ListRowProps[\"selectedBg\"];\n hoverBg: ListRowProps[\"hoverBg\"];\n tone: NonNullable<ListRowProps[\"tone\"]>;\n variant: ListRowProps[\"variant\"];\n}) => ({\n bg: input.isSelected ? input.selectedBg : \"transparent\",\n _hover: (() => {\n if (input.variant === \"empty-state\") return { bg: \"transparent\" };\n if (input.isSelected) return { bg: input.selectedBg };\n if (input.tone === \"danger\")\n return {\n outline: \"1px solid\",\n outlineColor: \"red.500\",\n outlineOffset: \"-1px\",\n };\n return { bg: input.hoverBg };\n })(),\n _active: input.variant === \"empty-state\" ? { bg: \"transparent\" } : { bg: input.selectedBg },\n});\n\nconst rowLabelIds = (labelId: string, hasEndContent: boolean) =>\n hasEndContent ? `${labelId} ${labelId}-end` : labelId;\n\nexport const createListRowRootProps = (input: {\n rootProps: ListRowRootProps;\n labelId: string;\n hasEndContent: boolean;\n rowRole: ListRowRootProps[\"role\"];\n className?: string;\n isSelected: boolean;\n isExpanded: boolean;\n showChevron: boolean;\n rowHeight: ListRowRootProps[\"height\"];\n minHeight: ListRowRootProps[\"minHeight\"];\n verticalPadding: ListRowRootProps[\"py\"];\n paddingLeft: ListRowRootProps[\"pl\"];\n selectedBg: ListRowProps[\"selectedBg\"];\n hoverBg: ListRowProps[\"hoverBg\"];\n tone: NonNullable<ListRowProps[\"tone\"]>;\n isDisabled: boolean;\n variant: ListRowProps[\"variant\"];\n}) => {\n const interactiveCursor = input.isDisabled ? \"not-allowed\" : \"pointer\";\n const props: ListRowRootProps = {\n \"aria-labelledby\": input.rootProps[\"aria-label\"] ? undefined : rowLabelIds(input.labelId, input.hasEndContent),\n ...input.rootProps,\n role: input.rowRole,\n \"aria-selected\": input.rootProps[\"aria-selected\"] ?? (input.rowRole === \"option\" ? input.isSelected : undefined),\n \"aria-expanded\": input.showChevron ? input.isExpanded : undefined,\n className: input.className ? `group ${input.className}` : \"group\",\n width: \"full\",\n minWidth: \"0\",\n maxWidth: \"full\",\n height: input.rowHeight,\n minHeight: input.minHeight,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"xs\",\n px: \"sm\",\n py: input.verticalPadding,\n pl: input.paddingLeft,\n borderRadius: input.variant === \"full-width\" || input.variant === \"collection\" ? \"0\" : \"xs\",\n ...createRowBackgroundProps({ ...input }),\n cursor: input.variant === \"empty-state\" ? \"default\" : interactiveCursor,\n overflow: \"hidden\",\n textAlign: \"left\",\n color: \"inherit\",\n textDecoration: \"none\",\n };\n return props;\n};\n","import { chakra } from \"@chakra-ui/react\";\nimport {\n forwardRef,\n type ReactElement,\n type KeyboardEvent as ReactKeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n useId,\n useState,\n} from \"react\";\nimport type { ListRowItem, ListRowProps } from \"./list-row.types\";\nimport { ListRowChrome } from \"./list-row-chrome\";\nimport { ListRowContent } from \"./list-row-content\";\nimport { computePaddingLeft, createListRowRootProps, resolveListRowSizing } from \"./list-row-root-props\";\n\nexport const ListRow = forwardRef<HTMLElement, ListRowProps>((props, ref) => {\n const {\n id,\n label,\n description,\n icon,\n iconColor,\n indicator,\n endContent,\n tooltip,\n disabled,\n isContainer,\n isNavigable,\n href,\n navigationIntent,\n menuItems,\n menuPlacement,\n contextMenuItems,\n actions,\n children,\n onActivate,\n depth = 0,\n isSelected = false,\n isExpanded = false,\n showExpandToggle = false,\n showContextMenuTrigger = false,\n variant = \"default\",\n tone = \"default\",\n selectedBg = \"bg.active\",\n hoverBg = \"bg.hover\",\n asChild = false,\n className,\n role: roleProp,\n onToggleExpand,\n onPointerMove,\n draggable,\n onDragStart,\n onDragOver,\n onDragEnd,\n onDrop,\n onClick,\n onKeyDown,\n ...rootProps\n } = props;\n const [menuOpen, setMenuOpen] = useState(false);\n const labelId = useId();\n\n const item: ListRowItem = {\n id,\n label,\n description,\n icon,\n iconColor,\n indicator,\n endContent,\n tooltip,\n disabled,\n isContainer,\n isNavigable,\n href,\n navigationIntent,\n menuItems,\n menuPlacement,\n contextMenuItems,\n actions,\n children,\n onActivate,\n };\n\n const dragProps = { draggable, onDragStart, onDragOver, onDragEnd, onDrop };\n\n const hasChildren = (item.children?.length ?? 0) > 0 || item.isContainer === true;\n const hasMenuItems = (item.menuItems?.length ?? 0) > 0;\n const hasActions = (item.actions?.length ?? 0) > 0 || (item.contextMenuItems?.length ?? 0) > 0;\n const showChevron = showExpandToggle && hasChildren;\n const isDisabled = item.disabled === true;\n\n const handleActivate = () => {\n if (isDisabled) return;\n if (hasMenuItems) return;\n if (showChevron) {\n onToggleExpand?.();\n return;\n }\n onActivate?.();\n };\n\n const handleClick = (event: ReactMouseEvent<HTMLElement>) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n handleActivate();\n };\n\n const handleMenuClick = (event: ReactMouseEvent<HTMLElement>) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n\n setMenuOpen((current) => !current);\n };\n\n const handleKeyDown = (event: ReactKeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n\n event.preventDefault();\n if (isDisabled) return;\n if (hasMenuItems) {\n setMenuOpen((current) => !current);\n return;\n }\n\n handleActivate();\n };\n\n const hasDescription = item.description !== undefined;\n const paddingLeft = computePaddingLeft(depth);\n const verticalPadding = variant === \"default\" || hasDescription ? \"xs\" : \"2xs\";\n const activationProps = hasMenuItems ? { onClick: handleMenuClick } : { onClick: handleClick };\n const { rowHeight, minHeight } = resolveListRowSizing(variant, hasDescription);\n const rowRole = roleProp ?? (hasMenuItems ? \"button\" : \"option\");\n\n const rowProps = createListRowRootProps({\n rootProps,\n labelId,\n hasEndContent: Boolean(item.endContent),\n rowRole,\n className,\n isSelected,\n isExpanded,\n showChevron,\n rowHeight,\n minHeight,\n verticalPadding,\n paddingLeft,\n selectedBg,\n hoverBg,\n tone,\n isDisabled,\n variant,\n });\n\n const content = (\n <ListRowContent\n labelId={labelId}\n item={item}\n isExpanded={isExpanded}\n showChevron={showChevron}\n isDisabled={isDisabled}\n tone={tone}\n variant={variant}\n showContextMenuTrigger={showContextMenuTrigger}\n />\n );\n\n const wrap = (children: ReactElement) => (\n <ListRowChrome\n item={item}\n menuOpen={menuOpen}\n onMenuOpenChange={setMenuOpen}\n onMenuSelect={(menuItem) => {\n setMenuOpen(false);\n menuItem.onAction?.();\n }}\n >\n {children}\n </ListRowChrome>\n );\n\n if (asChild) {\n return wrap(\n <chakra.div ref={ref} {...rowProps} {...dragProps} {...activationProps} onPointerMove={onPointerMove}>\n {content}\n </chakra.div>,\n );\n }\n if (item.href && !showChevron && !isDisabled && !hasMenuItems) {\n return wrap(\n <chakra.a\n ref={ref}\n href={item.href}\n {...(rowProps as object)}\n {...dragProps}\n onClick={handleClick}\n onPointerMove={onPointerMove}\n >\n {content}\n </chakra.a>,\n );\n }\n\n if (hasActions) {\n return wrap(\n <chakra.div\n ref={ref}\n aria-disabled={isDisabled || undefined}\n {...rowProps}\n {...dragProps}\n {...activationProps}\n tabIndex={rootProps.tabIndex ?? 0}\n onKeyDown={handleKeyDown}\n onPointerMove={onPointerMove}\n >\n {content}\n </chakra.div>,\n );\n }\n\n return wrap(\n <chakra.button\n ref={ref}\n type=\"button\"\n disabled={isDisabled}\n {...(rowProps as object)}\n {...dragProps}\n {...activationProps}\n onPointerMove={onPointerMove}\n >\n {content}\n </chakra.button>,\n );\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./param-editor-field-qEWoluWT.js";
1
+ import { t as e } from "./param-editor-field-BJ_rLUnV.js";
2
2
  import { Box as t, Button as n, Collapsible as r, Flex as i, Icon as a, Stack as o, Text as s } from "@chakra-ui/react";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
@@ -222,4 +222,4 @@ var S = (e) => {
222
222
  //#endregion
223
223
  export { p as i, b as n, v as r, S as t };
224
224
 
225
- //# sourceMappingURL=param-editor-BsyIOdrP.js.map
225
+ //# sourceMappingURL=param-editor-BQd4AOUP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"param-editor-BsyIOdrP.js","names":["Box","Param","ParamValue","ParamValueMap","ResourceRefValue","ParamEditorField","ParamEditorRowProps","param","values","onChange","id","value","onOpenResource","ref","readOnly","fullWidth","variant","ParamEditorRow","props","$","_c","t0","t1","t2","undefined","small","t3","t4","_temp","t5","t6","t7","_c","_temp","Button","Collapsible","Flex","Icon","Stack","Text","ChevronDown","useState","Param","ParamValue","ParamValueMap","ResourceRefValue","ParamEditorRow","ParamEditorSectionProps","title","description","params","defaultValues","onChange","id","value","onOpenResource","ref","readOnly","fullWidth","collapsible","defaultCollapsed","isFirst","variant","ParamEditorSectionTitle","props","$","_c","t0","t1","t2","ParamEditorSectionHeader","open","onToggle","Symbol","for","bg","t3","t4","ParamEditorSectionBody","sectionPadding","param","map","ParamEditorSection","undefined","setOpen","hasTitle","Boolean","canCollapse","contentOpen","_temp","t5","t6","t7","current","_c","_temp","Stack","InputGroup","Param","ParamValue","ParamValueMap","ResourceRefValue","ParamEditorSection","ParamEditorProps","params","groups","defaultValues","onChange","id","value","onOpenResource","ref","readOnly","fullWidth","variant","ParamEditor","props","$","_c","t0","t1","t2","t3","t4","t5","undefined","t6","t7","handleChange","_temp","t8","length","t9","t10","group","index","title","description","collapsible","defaultCollapsed","map","_c","Stack","StackProps","ParamEditorControlListProps","ParamEditorControlList","props","$","_c","children","rest","t0","_c","ParamEditorField","ParamEditorRow","$","t0","t1","props","t2","values","small","t3","t4","onChange","_temp$2","t5","t6","fullWidth","onOpenResource","param","readOnly","t7","Box","ParamEditorSectionTitle","title","Text","description","Stack","ParamEditorSectionHeader","collapsible","Flex","open","Icon","ChevronDown","onToggle","Button","ParamEditorSectionBody","sectionPadding","defaultCollapsed","isFirst","variant","defaultValues","params","ParamEditorSection","setOpen","useState","canCollapse","contentOpen","_temp$1","Collapsible","current","ParamEditor","groups","handleChange","_temp","t8","t9","t10","group","index","ParamEditorControlList","children","rest"],"sources":["../src/components/param-editor/param-editor-row.tsx","../src/components/param-editor/param-editor-section.tsx","../src/components/param-editor/param-editor.tsx","../src/components/param-editor/param-editor-control-list.tsx"],"sourcesContent":["import { Box } from \"@chakra-ui/react\";\nimport type { Param, ParamValue, ParamValueMap, ResourceRefValue } from \"./param-editor.types\";\nimport { ParamEditorField } from \"./param-editor-field\";\n\nexport interface ParamEditorRowProps {\n param: Param;\n values?: ParamValueMap;\n onChange?: (id: string, value: ParamValue) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n variant?: \"default\" | \"small\";\n}\n\n/**\n * The padded field row every param surface is built from. Surfaces that compose\n * their own list of fields — a command dialog mixing built-in and host-supplied\n * controls — stack these instead of nesting one editor per field, so the whole\n * form keeps a single rhythm.\n */\nexport const ParamEditorRow = (props: ParamEditorRowProps) => {\n const { param, values = {}, onChange, onOpenResource, readOnly, fullWidth, variant = \"default\" } = props;\n const small = variant === \"small\";\n\n return (\n <Box px=\"sm\" py={small ? \"2xs\" : \"xs\"}>\n <ParamEditorField\n param={param}\n defaultValues={values}\n onChange={onChange ?? (() => undefined)}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n size={small ? \"xs\" : \"sm\"}\n />\n </Box>\n );\n};\n","import { Button, Collapsible, Flex, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { useState } from \"react\";\nimport type { Param, ParamValue, ParamValueMap, ResourceRefValue } from \"./param-editor.types\";\nimport { ParamEditorRow } from \"./param-editor-row\";\n\ninterface ParamEditorSectionProps {\n title?: string;\n description?: string;\n params: Param[];\n defaultValues: ParamValueMap;\n onChange: (id: string, value: ParamValue) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n isFirst?: boolean;\n variant?: \"default\" | \"small\";\n}\n\nconst ParamEditorSectionTitle = (props: { title: string; description?: string }) => {\n const { title, description } = props;\n\n return (\n <Stack gap=\"2xs\" minW=\"0\" textAlign=\"left\">\n <Text textStyle=\"label/M/medium\" color=\"fg\" truncate>\n {title}\n </Text>\n {description ? (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\" lineClamp={2}>\n {description}\n </Text>\n ) : null}\n </Stack>\n );\n};\n\nconst ParamEditorSectionHeader = (props: {\n title: string;\n description?: string;\n open: boolean;\n collapsible?: boolean;\n onToggle: () => void;\n}) => {\n const { title, description, open, collapsible, onToggle } = props;\n\n if (!collapsible) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2.25rem\" px=\"sm\" py=\"xs\">\n <ParamEditorSectionTitle title={title} description={description} />\n </Flex>\n );\n }\n\n return (\n <Button\n aria-expanded={open}\n borderRadius=\"0\"\n height=\"auto\"\n justifyContent=\"space-between\"\n minHeight=\"2.25rem\"\n onClick={onToggle}\n px=\"sm\"\n py=\"xs\"\n size=\"xs\"\n variant=\"ghost\"\n width=\"full\"\n _expanded={{ bg: \"transparent\" }}\n >\n <ParamEditorSectionTitle title={title} description={description} />\n <Icon\n as={ChevronDown}\n boxSize=\"14px\"\n color=\"fg.muted\"\n flexShrink={0}\n transform={open ? \"rotate(0deg)\" : \"rotate(-90deg)\"}\n transition=\"transform 120ms ease\"\n />\n </Button>\n );\n};\n\nconst ParamEditorSectionBody = (props: Omit<ParamEditorSectionProps, \"title\" | \"description\" | \"collapsible\">) => {\n const { params, defaultValues, onChange, onOpenResource, readOnly, fullWidth, defaultCollapsed, isFirst, variant } =\n props;\n let sectionPadding = defaultCollapsed || isFirst ? \"2xs\" : \"xs\";\n if (variant === \"small\") sectionPadding = \"none\";\n\n return (\n <Stack gap=\"0\" py={sectionPadding}>\n {params.map((param) => (\n <ParamEditorRow\n key={param.id}\n param={param}\n values={defaultValues}\n onChange={onChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n variant={variant}\n />\n ))}\n </Stack>\n );\n};\n\nexport const ParamEditorSection = (props: ParamEditorSectionProps) => {\n const {\n title,\n description,\n params,\n defaultValues,\n onChange,\n onOpenResource,\n readOnly,\n fullWidth,\n collapsible,\n defaultCollapsed = false,\n isFirst = false,\n variant = \"default\",\n } = props;\n const [open, setOpen] = useState(!defaultCollapsed);\n const hasTitle = Boolean(title);\n const canCollapse = Boolean(hasTitle && collapsible);\n const contentOpen = canCollapse ? open : true;\n\n return (\n <Stack as=\"section\" gap=\"0\" borderTopWidth={isFirst ? \"0\" : \"1px\"} borderColor=\"border.subtle\" minW=\"0\">\n {title ? (\n <ParamEditorSectionHeader\n title={title}\n description={description}\n open={contentOpen}\n collapsible={canCollapse}\n onToggle={() => setOpen((current) => !current)}\n />\n ) : null}\n <Collapsible.Root open={contentOpen}>\n <Collapsible.Content>\n <ParamEditorSectionBody\n params={params}\n defaultValues={defaultValues}\n onChange={onChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n defaultCollapsed={defaultCollapsed}\n isFirst={isFirst}\n variant={variant}\n />\n </Collapsible.Content>\n </Collapsible.Root>\n </Stack>\n );\n};\n","import { Stack } from \"@chakra-ui/react\";\nimport type { InputGroup, Param, ParamValue, ParamValueMap, ResourceRefValue } from \"./param-editor.types\";\nimport { ParamEditorSection } from \"./param-editor-section\";\n\nexport interface ParamEditorProps {\n params?: Param[];\n groups?: InputGroup[];\n defaultValues?: ParamValueMap;\n onChange?: (id: string, value: ParamValue) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n variant?: \"default\" | \"small\";\n}\n\nexport const ParamEditor = (props: ParamEditorProps) => {\n const {\n params = [],\n groups = [],\n defaultValues = {},\n onChange,\n onOpenResource,\n readOnly,\n fullWidth = false,\n variant = \"default\",\n } = props;\n const handleChange = onChange ?? (() => undefined);\n\n return (\n <Stack flex=\"1\" maxW=\"full\" gap=\"0\">\n {params.length > 0 ? (\n <ParamEditorSection\n params={params}\n defaultValues={defaultValues}\n onChange={handleChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n variant={variant}\n isFirst\n />\n ) : null}\n {groups.map((group, index) => (\n <ParamEditorSection\n key={group.id}\n title={group.title}\n description={group.description}\n params={group.params}\n defaultValues={defaultValues}\n onChange={handleChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n variant={variant}\n collapsible={group.collapsible}\n defaultCollapsed={group.defaultCollapsed}\n isFirst={params.length === 0 && index === 0}\n />\n ))}\n </Stack>\n );\n};\n","import { Stack, type StackProps } from \"@chakra-ui/react\";\n\ninterface ParamEditorControlListProps extends StackProps {}\n\n// A vertical stack of control items with consistent authoring density. Use it to\n// compose control layouts outside a full <ParamEditor> section.\nexport const ParamEditorControlList = (props: ParamEditorControlListProps) => {\n const { children, ...rest } = props;\n\n return (\n <Stack gap=\"sm\" minW=\"0\" {...rest}>\n {children}\n </Stack>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"param-editor-BQd4AOUP.js","names":["Box","Param","ParamValue","ParamValueMap","ResourceRefValue","ParamEditorField","ParamEditorRowProps","param","values","onChange","id","value","onOpenResource","ref","readOnly","fullWidth","variant","ParamEditorRow","props","$","_c","t0","t1","t2","undefined","small","t3","t4","_temp","t5","t6","t7","_c","_temp","Button","Collapsible","Flex","Icon","Stack","Text","ChevronDown","useState","Param","ParamValue","ParamValueMap","ResourceRefValue","ParamEditorRow","ParamEditorSectionProps","title","description","params","defaultValues","onChange","id","value","onOpenResource","ref","readOnly","fullWidth","collapsible","defaultCollapsed","isFirst","variant","ParamEditorSectionTitle","props","$","_c","t0","t1","t2","ParamEditorSectionHeader","open","onToggle","Symbol","for","bg","t3","t4","ParamEditorSectionBody","sectionPadding","param","map","ParamEditorSection","undefined","setOpen","hasTitle","Boolean","canCollapse","contentOpen","_temp","t5","t6","t7","current","_c","_temp","Stack","InputGroup","Param","ParamValue","ParamValueMap","ResourceRefValue","ParamEditorSection","ParamEditorProps","params","groups","defaultValues","onChange","id","value","onOpenResource","ref","readOnly","fullWidth","variant","ParamEditor","props","$","_c","t0","t1","t2","t3","t4","t5","undefined","t6","t7","handleChange","_temp","t8","length","t9","t10","group","index","title","description","collapsible","defaultCollapsed","map","_c","Stack","StackProps","ParamEditorControlListProps","ParamEditorControlList","props","$","_c","children","rest","t0","_c","ParamEditorField","ParamEditorRow","$","t0","t1","props","t2","values","small","t3","t4","onChange","_temp$2","t5","t6","fullWidth","onOpenResource","param","readOnly","t7","Box","ParamEditorSectionTitle","title","Text","description","Stack","ParamEditorSectionHeader","collapsible","Flex","open","Icon","ChevronDown","onToggle","Button","ParamEditorSectionBody","sectionPadding","defaultCollapsed","isFirst","variant","defaultValues","params","ParamEditorSection","setOpen","useState","canCollapse","contentOpen","_temp$1","Collapsible","current","ParamEditor","groups","handleChange","_temp","t8","t9","t10","group","index","ParamEditorControlList","children","rest"],"sources":["../src/components/param-editor/param-editor-row.tsx","../src/components/param-editor/param-editor-section.tsx","../src/components/param-editor/param-editor.tsx","../src/components/param-editor/param-editor-control-list.tsx"],"sourcesContent":["import { Box } from \"@chakra-ui/react\";\nimport type { Param, ParamValue, ParamValueMap, ResourceRefValue } from \"./param-editor.types\";\nimport { ParamEditorField } from \"./param-editor-field\";\n\nexport interface ParamEditorRowProps {\n param: Param;\n values?: ParamValueMap;\n onChange?: (id: string, value: ParamValue) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n variant?: \"default\" | \"small\";\n}\n\n/**\n * The padded field row every param surface is built from. Surfaces that compose\n * their own list of fields — a command dialog mixing built-in and host-supplied\n * controls — stack these instead of nesting one editor per field, so the whole\n * form keeps a single rhythm.\n */\nexport const ParamEditorRow = (props: ParamEditorRowProps) => {\n const { param, values = {}, onChange, onOpenResource, readOnly, fullWidth, variant = \"default\" } = props;\n const small = variant === \"small\";\n\n return (\n <Box px=\"sm\" py={small ? \"2xs\" : \"xs\"}>\n <ParamEditorField\n param={param}\n defaultValues={values}\n onChange={onChange ?? (() => undefined)}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n size={small ? \"xs\" : \"sm\"}\n />\n </Box>\n );\n};\n","import { Button, Collapsible, Flex, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { useState } from \"react\";\nimport type { Param, ParamValue, ParamValueMap, ResourceRefValue } from \"./param-editor.types\";\nimport { ParamEditorRow } from \"./param-editor-row\";\n\ninterface ParamEditorSectionProps {\n title?: string;\n description?: string;\n params: Param[];\n defaultValues: ParamValueMap;\n onChange: (id: string, value: ParamValue) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n isFirst?: boolean;\n variant?: \"default\" | \"small\";\n}\n\nconst ParamEditorSectionTitle = (props: { title: string; description?: string }) => {\n const { title, description } = props;\n\n return (\n <Stack gap=\"2xs\" minW=\"0\" textAlign=\"left\">\n <Text textStyle=\"label/M/medium\" color=\"fg\" truncate>\n {title}\n </Text>\n {description ? (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\" lineClamp={2}>\n {description}\n </Text>\n ) : null}\n </Stack>\n );\n};\n\nconst ParamEditorSectionHeader = (props: {\n title: string;\n description?: string;\n open: boolean;\n collapsible?: boolean;\n onToggle: () => void;\n}) => {\n const { title, description, open, collapsible, onToggle } = props;\n\n if (!collapsible) {\n return (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2.25rem\" px=\"sm\" py=\"xs\">\n <ParamEditorSectionTitle title={title} description={description} />\n </Flex>\n );\n }\n\n return (\n <Button\n aria-expanded={open}\n borderRadius=\"0\"\n height=\"auto\"\n justifyContent=\"space-between\"\n minHeight=\"2.25rem\"\n onClick={onToggle}\n px=\"sm\"\n py=\"xs\"\n size=\"xs\"\n variant=\"ghost\"\n width=\"full\"\n _expanded={{ bg: \"transparent\" }}\n >\n <ParamEditorSectionTitle title={title} description={description} />\n <Icon\n as={ChevronDown}\n boxSize=\"14px\"\n color=\"fg.muted\"\n flexShrink={0}\n transform={open ? \"rotate(0deg)\" : \"rotate(-90deg)\"}\n transition=\"transform 120ms ease\"\n />\n </Button>\n );\n};\n\nconst ParamEditorSectionBody = (props: Omit<ParamEditorSectionProps, \"title\" | \"description\" | \"collapsible\">) => {\n const { params, defaultValues, onChange, onOpenResource, readOnly, fullWidth, defaultCollapsed, isFirst, variant } =\n props;\n let sectionPadding = defaultCollapsed || isFirst ? \"2xs\" : \"xs\";\n if (variant === \"small\") sectionPadding = \"none\";\n\n return (\n <Stack gap=\"0\" py={sectionPadding}>\n {params.map((param) => (\n <ParamEditorRow\n key={param.id}\n param={param}\n values={defaultValues}\n onChange={onChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n variant={variant}\n />\n ))}\n </Stack>\n );\n};\n\nexport const ParamEditorSection = (props: ParamEditorSectionProps) => {\n const {\n title,\n description,\n params,\n defaultValues,\n onChange,\n onOpenResource,\n readOnly,\n fullWidth,\n collapsible,\n defaultCollapsed = false,\n isFirst = false,\n variant = \"default\",\n } = props;\n const [open, setOpen] = useState(!defaultCollapsed);\n const hasTitle = Boolean(title);\n const canCollapse = Boolean(hasTitle && collapsible);\n const contentOpen = canCollapse ? open : true;\n\n return (\n <Stack as=\"section\" gap=\"0\" borderTopWidth={isFirst ? \"0\" : \"1px\"} borderColor=\"border.subtle\" minW=\"0\">\n {title ? (\n <ParamEditorSectionHeader\n title={title}\n description={description}\n open={contentOpen}\n collapsible={canCollapse}\n onToggle={() => setOpen((current) => !current)}\n />\n ) : null}\n <Collapsible.Root open={contentOpen}>\n <Collapsible.Content>\n <ParamEditorSectionBody\n params={params}\n defaultValues={defaultValues}\n onChange={onChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n defaultCollapsed={defaultCollapsed}\n isFirst={isFirst}\n variant={variant}\n />\n </Collapsible.Content>\n </Collapsible.Root>\n </Stack>\n );\n};\n","import { Stack } from \"@chakra-ui/react\";\nimport type { InputGroup, Param, ParamValue, ParamValueMap, ResourceRefValue } from \"./param-editor.types\";\nimport { ParamEditorSection } from \"./param-editor-section\";\n\nexport interface ParamEditorProps {\n params?: Param[];\n groups?: InputGroup[];\n defaultValues?: ParamValueMap;\n onChange?: (id: string, value: ParamValue) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n variant?: \"default\" | \"small\";\n}\n\nexport const ParamEditor = (props: ParamEditorProps) => {\n const {\n params = [],\n groups = [],\n defaultValues = {},\n onChange,\n onOpenResource,\n readOnly,\n fullWidth = false,\n variant = \"default\",\n } = props;\n const handleChange = onChange ?? (() => undefined);\n\n return (\n <Stack flex=\"1\" maxW=\"full\" gap=\"0\">\n {params.length > 0 ? (\n <ParamEditorSection\n params={params}\n defaultValues={defaultValues}\n onChange={handleChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n variant={variant}\n isFirst\n />\n ) : null}\n {groups.map((group, index) => (\n <ParamEditorSection\n key={group.id}\n title={group.title}\n description={group.description}\n params={group.params}\n defaultValues={defaultValues}\n onChange={handleChange}\n onOpenResource={onOpenResource}\n readOnly={readOnly}\n fullWidth={fullWidth}\n variant={variant}\n collapsible={group.collapsible}\n defaultCollapsed={group.defaultCollapsed}\n isFirst={params.length === 0 && index === 0}\n />\n ))}\n </Stack>\n );\n};\n","import { Stack, type StackProps } from \"@chakra-ui/react\";\n\ninterface ParamEditorControlListProps extends StackProps {}\n\n// A vertical stack of control items with consistent authoring density. Use it to\n// compose control layouts outside a full <ParamEditor> section.\nexport const ParamEditorControlList = (props: ParamEditorControlListProps) => {\n const { children, ...rest } = props;\n\n return (\n <Stack gap=\"sm\" minW=\"0\" {...rest}>\n {children}\n </Stack>\n );\n};\n"],"mappings":"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"}