@pstdio/ui 0.40.0 → 0.41.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 (83) hide show
  1. package/dist/{MermaidComponent-81jr28u4.js → MermaidComponent-BCiI63_G.js} +3 -3
  2. package/dist/{MermaidComponent-81jr28u4.js.map → MermaidComponent-BCiI63_G.js.map} +1 -1
  3. package/dist/chat-question-bubble-w2vMbFsS.js +68 -0
  4. package/dist/chat-question-bubble-w2vMbFsS.js.map +1 -0
  5. package/dist/chat-ui.d.ts +96 -21
  6. package/dist/chat-ui.js +2091 -1441
  7. package/dist/chat-ui.js.map +1 -1
  8. package/dist/{data-table-stats-row-CpRe_xK2.js → data-table-stats-row-EiTEONdY.js} +2 -2
  9. package/dist/{data-table-stats-row-CpRe_xK2.js.map → data-table-stats-row-EiTEONdY.js.map} +1 -1
  10. package/dist/data-table.d.ts +27 -7
  11. package/dist/data-table.js +1035 -872
  12. package/dist/data-table.js.map +1 -1
  13. package/dist/diff-bubble-DewUd_2w.js +61 -0
  14. package/dist/diff-bubble-DewUd_2w.js.map +1 -0
  15. package/dist/{diff-drawer-45rpk3aq.js → diff-drawer-BwZBOObe.js} +106 -85
  16. package/dist/diff-drawer-BwZBOObe.js.map +1 -0
  17. package/dist/diff-viewer-kOOd7C7h.js +574 -0
  18. package/dist/diff-viewer-kOOd7C7h.js.map +1 -0
  19. package/dist/diff.d.ts +11 -0
  20. package/dist/diff.js +107 -98
  21. package/dist/diff.js.map +1 -1
  22. package/dist/display-sort-control-DPxc0e5z.js +587 -0
  23. package/dist/display-sort-control-DPxc0e5z.js.map +1 -0
  24. package/dist/{workspace-badge-Brm3Xr3m.d.ts → host-storage-DP0RLj4i.d.ts} +15 -1
  25. package/dist/{index-Bfddrlz8.d.ts → index-C9mywhyX.d.ts} +50 -14
  26. package/dist/index-D3UJyWWh.d.ts +501 -0
  27. package/dist/{index-CbtbcvKm.d.ts → index-DlmvvQ6x.d.ts} +1 -1
  28. package/dist/index.d.ts +44 -19
  29. package/dist/index.js +941 -908
  30. package/dist/index.js.map +1 -1
  31. package/dist/kanban-renderer.d.ts +2 -326
  32. package/dist/kanban-renderer.js +991 -610
  33. package/dist/kanban-renderer.js.map +1 -1
  34. package/dist/list-row-DM0DiIrN.js +1167 -0
  35. package/dist/list-row-DM0DiIrN.js.map +1 -0
  36. package/dist/{mermaid-renderer-DImi0fDp.js → mermaid-renderer-0PmNkOXI.js} +29 -29
  37. package/dist/mermaid-renderer-0PmNkOXI.js.map +1 -0
  38. package/dist/mermaid.js +1 -1
  39. package/dist/param-editor.js +2 -3
  40. package/dist/prism-JVIsQMoJ.js +1029 -0
  41. package/dist/prism-JVIsQMoJ.js.map +1 -0
  42. package/dist/{resource-badge-95WPVlZf.d.ts → resource-badge-nOWPqxFU.d.ts} +1 -0
  43. package/dist/rich-text-DM24VNQZ.js +10447 -0
  44. package/dist/rich-text-DM24VNQZ.js.map +1 -0
  45. package/dist/rich-text.d.ts +2 -2
  46. package/dist/rich-text.js +2 -2
  47. package/dist/style.css +1 -1
  48. package/dist/terminal.d.ts +5 -63
  49. package/dist/terminal.js +102 -122
  50. package/dist/terminal.js.map +1 -1
  51. package/dist/{theme-CbmSEbRF.js → theme-at0rtSnX.js} +435 -245
  52. package/dist/theme-at0rtSnX.js.map +1 -0
  53. package/dist/theme-kKuLN2jb.js +80 -0
  54. package/dist/theme-kKuLN2jb.js.map +1 -0
  55. package/dist/theme-preference-BV4cbJNB.js +115 -0
  56. package/dist/theme-preference-BV4cbJNB.js.map +1 -0
  57. package/dist/theme.js +3 -2
  58. package/dist/{tree-list-BNZwjQZA.js → tree-list-Cqgl8mnN.js} +255 -250
  59. package/dist/tree-list-Cqgl8mnN.js.map +1 -0
  60. package/package.json +4 -4
  61. package/dist/diff-bubble-DZsarmSG.js +0 -61
  62. package/dist/diff-bubble-DZsarmSG.js.map +0 -1
  63. package/dist/diff-drawer-45rpk3aq.js.map +0 -1
  64. package/dist/diff-viewer-BP_mI6Wx.js +0 -558
  65. package/dist/diff-viewer-BP_mI6Wx.js.map +0 -1
  66. package/dist/list-row-uqD-q4gv.js +0 -1018
  67. package/dist/list-row-uqD-q4gv.js.map +0 -1
  68. package/dist/mermaid-renderer-DImi0fDp.js.map +0 -1
  69. package/dist/param-editor-BQd4AOUP.js +0 -225
  70. package/dist/param-editor-BQd4AOUP.js.map +0 -1
  71. package/dist/param-editor-field-BJ_rLUnV.js +0 -2385
  72. package/dist/param-editor-field-BJ_rLUnV.js.map +0 -1
  73. package/dist/prism-BStPsJSB.js +0 -658
  74. package/dist/prism-BStPsJSB.js.map +0 -1
  75. package/dist/rich-text-VYAmEigU.js +0 -6979
  76. package/dist/rich-text-VYAmEigU.js.map +0 -1
  77. package/dist/slider-hwHYe98I.js +0 -423
  78. package/dist/slider-hwHYe98I.js.map +0 -1
  79. package/dist/theme-CbmSEbRF.js.map +0 -1
  80. package/dist/theme-preference-pzfuK5cH.js +0 -101
  81. package/dist/theme-preference-pzfuK5cH.js.map +0 -1
  82. package/dist/tree-list-BNZwjQZA.js.map +0 -1
  83. package/dist/types-DWA3enV6.d.ts +0 -182
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"mermaid-renderer-DImi0fDp.js","names":["MERMAID_MIN_ZOOM","MERMAID_MAX_ZOOM","MERMAID_ZOOM_STEP","clampMermaidZoom","value","Number","Math","min","max","toFixed","zoomIn","zoom","zoomOut","parseSvgLength","value","parsed","Number","parseFloat","isFinite","readAttribute","svg","name","match","RegExp","resolveSvgSize","viewBox","split","map","viewBoxWidth","viewBoxHeight","width","height","Math","max","closeVoidHtmlTags","replace","normalizeSvgForImage","sized","tag","withWidth","test","createSvgDataUrl","bytes","TextEncoder","encode","binary","byte","String","fromCharCode","btoa","clampMermaidZoom","createSvgDataUrl","resolveSvgSize","DownloadMermaidPngOptions","svg","zoom","filename","loadImage","url","Promise","image","HTMLImageElement","cleanup","resolve","reject","Image","style","position","left","top","pointerEvents","onload","remove","onerror","Error","document","body","append","src","canvasToPngBlob","canvas","HTMLCanvasElement","Blob","toBlob","blob","triggerDownload","URL","createObjectURL","anchor","createElement","href","download","click","window","setTimeout","revokeObjectURL","downloadMermaidPng","options","svgUrl","width","height","scale","Math","ceil","context","getContext","drawImage","Box","Text","ScrollArea","MermaidErrorStateProps","code","error","MermaidErrorState","props","$","_c","t0","Symbol","for","t1","t2","p","t3","t4","_c","ScrollArea","Button","Dialog","Icon","IconButton","Portal","Stack","Text","Download","X","ReactNode","MermaidFullscreenProps","children","canDownload","open","onClose","onDownload","MermaidFullscreen","props","$","_c","t0","details","t1","Symbol","for","t2","base","md","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","_c","Icon","IconButton","Stack","Maximize2","Minus","Pencil","Plus","Tooltip","MERMAID_MAX_ZOOM","MERMAID_MIN_ZOOM","zoomIn","zoomOut","MermaidInlineToolbarProps","isEditable","onRequestEdit","onOpenFullscreen","MermaidZoomControlsProps","zoom","onZoomChange","MermaidInlineToolbar","props","$","_c","t0","t1","Symbol","for","t2","t3","_temp","MermaidZoomControls","t4","t5","t6","t7","t8","_temp2","event","stopPropagation","_c","Tooltip","Box","PointerEvent","ReactNode","useEffect","useRef","useState","MermaidZoomControls","createSvgDataUrl","MermaidSvgViewProps","svg","zoom","allowPanAtDefaultZoom","maxHeight","minHeight","overlayActions","onZoomChange","MermaidSvgView","props","$","_c","t0","t1","t2","undefined","t3","Symbol","for","x","y","offset","setOffset","isPanning","setIsPanning","t4","pointerId","panStartRef","canPan","t5","event","current","clientX","clientY","currentTarget","setPointerCapture","handlePointerDown","t6","event_0","handlePointerMove","t7","event_1","releasePointerCapture","handlePointerUp","t8","t9","t10","t11","t12","t13","t14","t15","t16","display","width","maxWidth","height","userSelect","t17","t18","t19","t20","t21","_c","mermaid","useEffect","useState","getThemePreferenceMode","ThemePreferenceMode","useThemePreference","initializedMode","renderSequence","renderQueue","Promise","resolve","getMermaidTheme","mode","initializeMermaid","initialize","startOnLoad","htmlLabels","flowchart","securityLevel","theme","nextRenderId","renderMermaidDiagram","code","render","queuedRender","then","undefined","formatMermaidError","error","Error","message","trim","split","filter","Boolean","slice","join","useMermaidRender","themePreference","themePreferences","themeMode","svg","setSvg","setError","isRendering","setIsRendering","cancelled","renderDiagram","result","renderError","Box","Text","ReactNode","useEffect","useRef","useState","downloadMermaidPng","MermaidErrorState","MermaidFullscreen","MermaidSvgView","MermaidInlineToolbar","useMermaidRender","MermaidRendererProps","code","initialFullscreenOpen","initialZoom","isEditable","onRequestEdit","MermaidPreviewContentProps","allowPanAtDefaultZoom","error","isRendering","maxHeight","minHeight","overlayActions","svg","zoom","onZoomChange","MermaidPreviewContent","props","$","_c","t0","t1","Symbol","for","t2","MermaidRenderer","undefined","inlineZoom","setInlineZoom","fullscreenZoom","setFullscreenZoom","isFullscreenOpen","setIsFullscreenOpen","t3","previousResetValuesRef","canDownload","Boolean","t4","t5","previousResetValues","current","t6","openFullscreen","t7","t8","t9","t10","t11","t12","t13","_c","Tooltip$1","getThemePreferenceMode","mermaid","MERMAID_MIN_ZOOM","MERMAID_ZOOM_STEP","clampMermaidZoom","value","zoomIn","zoom","zoomOut","parseSvgLength","parsed","readAttribute","svg","name","resolveSvgSize","viewBox","viewBoxWidth","viewBoxHeight","closeVoidHtmlTags","normalizeSvgForImage","withWidth","tag","width","height","createSvgDataUrl","bytes","binary","byte","loadImage","image","resolve","reject","url","canvasToPngBlob","blob","triggerDownload","anchor","filename","downloadMermaidPng","options","scale","canvas","context","MermaidErrorState","$","c","props","t0","Text","t1","error","t2","t3","code","ScrollArea$1","Box","t4","MermaidFullscreen","onClose","details","Dialog","canDownload","t5","Icon","Download","t6","onDownload","Button","t7","X","t8","IconButton","t9","Stack","t10","children","t11","Portal","t12","open","MermaidInlineToolbar","isEditable","onRequestEdit","Pencil","Maximize2","onOpenFullscreen","_temp","MermaidZoomControls","onZoomChange","Plus","Minus","_temp2","event","MermaidSvgView","allowPanAtDefaultZoom","maxHeight","minHeight","offset","setOffset","useState","isPanning","setIsPanning","panStartRef","useRef","canPan","handlePointerDown","event_0","handlePointerMove","event_1","handlePointerUp","useEffect","t13","t14","t15","t16","t17","t18","t19","t20","t21","overlayActions","initializedMode","renderSequence","renderQueue","getMermaidTheme","mode","initializeMermaid","nextRenderId","renderMermaidDiagram","render","queuedRender","formatMermaidError","message","useMermaidRender","useThemePreference","themeMode","themePreference","themePreferences","setSvg","setError","isRendering","setIsRendering","cancelled","result","renderError","MermaidPreviewContent","MermaidRenderer","initialFullscreenOpen","initialZoom","inlineZoom","setInlineZoom","fullscreenZoom","setFullscreenZoom","isFullscreenOpen","setIsFullscreenOpen","previousResetValuesRef","previousResetValues","openFullscreen"],"sources":["../src/components/mermaid-renderer/mermaid-zoom.ts","../src/components/mermaid-renderer/svg-data-url.ts","../src/components/mermaid-renderer/download-png.ts","../src/components/mermaid-renderer/mermaid-error-state.tsx","../src/components/mermaid-renderer/mermaid-fullscreen.tsx","../src/components/mermaid-renderer/mermaid-toolbar.tsx","../src/components/mermaid-renderer/mermaid-svg-view.tsx","../src/components/mermaid-renderer/use-mermaid-render.ts","../src/components/mermaid-renderer/mermaid-renderer.tsx"],"sourcesContent":["export const MERMAID_MIN_ZOOM = 0.5;\nexport const MERMAID_MAX_ZOOM = 3;\nexport const MERMAID_ZOOM_STEP = 0.25;\n\nexport const clampMermaidZoom = (value: number) =>\n Number(Math.min(MERMAID_MAX_ZOOM, Math.max(MERMAID_MIN_ZOOM, value)).toFixed(2));\n\nexport const zoomIn = (zoom: number) => clampMermaidZoom(zoom + MERMAID_ZOOM_STEP);\n\nexport const zoomOut = (zoom: number) => clampMermaidZoom(zoom - MERMAID_ZOOM_STEP);\n","const parseSvgLength = (value: string | undefined) => {\n if (!value) {\n return 0;\n }\n\n const parsed = Number.parseFloat(value);\n return Number.isFinite(parsed) ? parsed : 0;\n};\n\nconst readAttribute = (svg: string, name: string) => {\n const match = svg.match(new RegExp(`\\\\s${name}=\"([^\"]+)\"`));\n return match?.[1];\n};\n\nexport const resolveSvgSize = (svg: string) => {\n const viewBox = readAttribute(svg, \"viewBox\")?.split(/\\s+/).map(Number) ?? [];\n const viewBoxWidth = viewBox[2] ?? 0;\n const viewBoxHeight = viewBox[3] ?? 0;\n\n if (viewBoxWidth > 0 && viewBoxHeight > 0) {\n return { width: viewBoxWidth, height: viewBoxHeight };\n }\n\n return {\n width: Math.max(parseSvgLength(readAttribute(svg, \"width\")), 1),\n height: Math.max(parseSvgLength(readAttribute(svg, \"height\")), 1),\n };\n};\n\n// SVG data URLs are parsed as strict XML by the browser; void HTML tags like `<br>`\n// must be self-closing or the image silently fails to decode (naturalWidth becomes 0).\n// Mermaid emits `<br/>` itself, but DOMPurify (used when securityLevel !== \"loose\")\n// normalises it back to the HTML5 form.\nconst closeVoidHtmlTags = (svg: string) => svg.replace(/<br(\\s[^>]*)?>/g, \"<br$1/>\");\n\nexport const normalizeSvgForImage = (svg: string) => {\n const { width, height } = resolveSvgSize(svg);\n\n const sized = svg.replace(/<svg\\b[^>]*>/, (tag) => {\n const withWidth = /\\swidth=/.test(tag)\n ? tag.replace(/\\swidth=\"[^\"]*\"/, ` width=\"${width}\"`)\n : tag.replace(\"<svg\", `<svg width=\"${width}\"`);\n\n return /\\sheight=/.test(withWidth)\n ? withWidth.replace(/\\sheight=\"[^\"]*\"/, ` height=\"${height}\"`)\n : withWidth.replace(\"<svg\", `<svg height=\"${height}\"`);\n });\n\n return closeVoidHtmlTags(sized);\n};\n\nexport const createSvgDataUrl = (svg: string) => {\n const bytes = new TextEncoder().encode(normalizeSvgForImage(svg));\n let binary = \"\";\n for (const byte of bytes) {\n binary += String.fromCharCode(byte);\n }\n\n return `data:image/svg+xml;base64,${btoa(binary)}`;\n};\n","import { clampMermaidZoom } from \"./mermaid-zoom\";\nimport { createSvgDataUrl, resolveSvgSize } from \"./svg-data-url\";\n\ninterface DownloadMermaidPngOptions {\n svg: string;\n zoom: number;\n filename?: string;\n}\n\nconst loadImage = (url: string) =>\n new Promise<{ image: HTMLImageElement; cleanup: () => void }>((resolve, reject) => {\n const image = new Image();\n image.style.position = \"fixed\";\n image.style.left = \"-10000px\";\n image.style.top = \"0\";\n image.style.pointerEvents = \"none\";\n image.onload = () => resolve({ image, cleanup: () => image.remove() });\n image.onerror = () => {\n image.remove();\n reject(new Error(\"Failed to load rendered Mermaid SVG for PNG export.\"));\n };\n document.body.append(image);\n image.src = url;\n });\n\nconst canvasToPngBlob = (canvas: HTMLCanvasElement) =>\n new Promise<Blob>((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n return;\n }\n\n reject(new Error(\"Failed to encode Mermaid diagram as PNG.\"));\n }, \"image/png\");\n });\n\nconst triggerDownload = (blob: Blob, filename: string) => {\n const url = URL.createObjectURL(blob);\n const anchor = document.createElement(\"a\");\n anchor.href = url;\n anchor.download = filename;\n document.body.append(anchor);\n anchor.click();\n anchor.remove();\n window.setTimeout(() => URL.revokeObjectURL(url), 0);\n};\n\nexport const downloadMermaidPng = async (options: DownloadMermaidPngOptions) => {\n const { svg, zoom, filename = \"mermaid-diagram.png\" } = options;\n const svgUrl = createSvgDataUrl(svg);\n\n const { image, cleanup } = await loadImage(svgUrl);\n try {\n const { width, height } = resolveSvgSize(svg);\n const scale = clampMermaidZoom(zoom);\n const canvas = document.createElement(\"canvas\");\n canvas.width = Math.ceil(width * scale);\n canvas.height = Math.ceil(height * scale);\n\n const context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Canvas rendering is unavailable for Mermaid PNG export.\");\n }\n\n context.scale(scale, scale);\n context.drawImage(image, 0, 0, width, height);\n triggerDownload(await canvasToPngBlob(canvas), filename);\n } finally {\n cleanup();\n }\n};\n","import { Box, Text } from \"@chakra-ui/react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\n\ninterface MermaidErrorStateProps {\n code: string;\n error: string;\n}\n\nexport const MermaidErrorState = (props: MermaidErrorStateProps) => {\n const { code, error } = props;\n\n return (\n <Box role=\"alert\" borderRadius=\"sm\" bg=\"bg.panel\" p=\"sm\">\n <Text color=\"fg.error\" textStyle=\"label/S/medium\">\n Mermaid parse failed\n </Text>\n <Text color=\"fg.muted\" textStyle=\"label/S/regular\" mt=\"2xs\" whiteSpace=\"pre-wrap\">\n {error}\n </Text>\n <ScrollArea\n mt=\"sm\"\n borderRadius=\"sm\"\n bg=\"bg.muted\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ p: \"sm\" }}\n >\n <Box as=\"pre\" m=\"0\" fontSize=\"sm\">\n {code}\n </Box>\n </ScrollArea>\n </Box>\n );\n};\n","import { Button, Dialog, Icon, IconButton, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { Download, X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\ninterface MermaidFullscreenProps {\n children: ReactNode;\n canDownload: boolean;\n open: boolean;\n onClose: () => void;\n onDownload: () => void;\n}\n\nexport const MermaidFullscreen = (props: MermaidFullscreenProps) => {\n const { children, canDownload, open, onClose, onDownload } = props;\n\n return (\n <Dialog.Root lazyMount unmountOnExit open={open} onOpenChange={(details) => !details.open && onClose()}>\n <Portal>\n <Dialog.Backdrop />\n <Dialog.Positioner padding={{ base: \"sm\", md: \"lg\" }}>\n <Dialog.Content\n width=\"min(72rem, calc(100vw - 2rem))\"\n height=\"min(48rem, calc(100dvh - 2rem))\"\n maxW=\"none\"\n borderRadius=\"xs\"\n overflow=\"hidden\"\n display=\"flex\"\n flexDirection=\"column\"\n >\n <Dialog.Header\n data-testid=\"mermaid-fullscreen-header\"\n p=\"sm\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n <Stack direction=\"row\" align=\"center\" justify=\"space-between\" width=\"100%\" gap=\"sm\">\n <Dialog.Title asChild>\n <Text textStyle=\"heading/S\">Mermaid diagram</Text>\n </Dialog.Title>\n <Stack direction=\"row\" align=\"center\" gap=\"xs\">\n <Button size=\"sm\" variant=\"subtle\" onClick={onDownload} disabled={!canDownload}>\n <Icon as={Download} boxSize=\"16px\" />\n Download as PNG\n </Button>\n <IconButton aria-label=\"Close\" size=\"sm\" variant=\"ghost\" onClick={onClose}>\n <Icon as={X} boxSize=\"16px\" />\n </IconButton>\n </Stack>\n </Stack>\n </Dialog.Header>\n <Dialog.Body data-testid=\"mermaid-fullscreen-body\" p=\"0\" flex=\"1\" minH=\"0\">\n {children}\n </Dialog.Body>\n </Dialog.Content>\n </Dialog.Positioner>\n </Portal>\n </Dialog.Root>\n );\n};\n","import { Icon, IconButton, Stack } from \"@chakra-ui/react\";\nimport { Maximize2, Minus, Pencil, Plus } from \"lucide-react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { MERMAID_MAX_ZOOM, MERMAID_MIN_ZOOM, zoomIn, zoomOut } from \"./mermaid-zoom\";\n\ninterface MermaidInlineToolbarProps {\n isEditable: boolean;\n onRequestEdit?: () => void;\n onOpenFullscreen: () => void;\n}\n\ninterface MermaidZoomControlsProps {\n zoom: number;\n onZoomChange: (zoom: number) => void;\n}\n\nexport const MermaidInlineToolbar = (props: MermaidInlineToolbarProps) => {\n const { isEditable, onRequestEdit, onOpenFullscreen } = props;\n\n return (\n <Stack\n data-testid=\"mermaid-inline-toolbar\"\n direction=\"row\"\n justify=\"flex-end\"\n align=\"center\"\n gap=\"xs\"\n position=\"absolute\"\n top=\"sm\"\n right=\"sm\"\n zIndex=\"1\"\n onPointerDown={(event) => event.stopPropagation()}\n >\n {isEditable && onRequestEdit ? (\n <Tooltip content=\"Edit source\">\n <IconButton aria-label=\"Edit\" size=\"xs\" variant=\"subtle\" onClick={onRequestEdit}>\n <Icon as={Pencil} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n ) : null}\n <Tooltip content=\"Open diagram\">\n <IconButton aria-label=\"Open diagram\" size=\"xs\" variant=\"subtle\" onClick={onOpenFullscreen}>\n <Icon as={Maximize2} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n </Stack>\n );\n};\n\nexport const MermaidZoomControls = (props: MermaidZoomControlsProps) => {\n const { zoom, onZoomChange } = props;\n\n return (\n <Stack\n data-testid=\"mermaid-zoom-controls\"\n gap=\"2xs\"\n position=\"absolute\"\n right=\"sm\"\n bottom=\"sm\"\n zIndex=\"1\"\n onPointerDown={(event) => event.stopPropagation()}\n >\n <Tooltip content=\"Zoom in\">\n <IconButton\n aria-label=\"Zoom in\"\n size=\"xs\"\n variant=\"subtle\"\n onClick={() => onZoomChange(zoomIn(zoom))}\n disabled={zoom >= MERMAID_MAX_ZOOM}\n >\n <Icon as={Plus} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n <Tooltip content=\"Zoom out\">\n <IconButton\n aria-label=\"Zoom out\"\n size=\"xs\"\n variant=\"subtle\"\n onClick={() => onZoomChange(zoomOut(zoom))}\n disabled={zoom <= MERMAID_MIN_ZOOM}\n >\n <Icon as={Minus} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n </Stack>\n );\n};\n","import { Box } from \"@chakra-ui/react\";\nimport type { PointerEvent, ReactNode } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { MermaidZoomControls } from \"./mermaid-toolbar\";\nimport { createSvgDataUrl } from \"./svg-data-url\";\n\ninterface MermaidSvgViewProps {\n svg: string;\n zoom: number;\n allowPanAtDefaultZoom?: boolean;\n maxHeight?: string;\n minHeight?: string;\n overlayActions?: ReactNode;\n onZoomChange: (zoom: number) => void;\n}\n\nexport const MermaidSvgView = (props: MermaidSvgViewProps) => {\n const {\n allowPanAtDefaultZoom = false,\n maxHeight = \"420px\",\n minHeight = \"220px\",\n overlayActions,\n svg,\n zoom,\n onZoomChange,\n } = props;\n const [offset, setOffset] = useState({ x: 0, y: 0 });\n const [isPanning, setIsPanning] = useState(false);\n const panStartRef = useRef({ pointerId: -1, x: 0, y: 0 });\n const canPan = allowPanAtDefaultZoom || zoom > 1;\n\n const handlePointerDown = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan) {\n return;\n }\n\n panStartRef.current = {\n pointerId: event.pointerId,\n x: event.clientX - offset.x,\n y: event.clientY - offset.y,\n };\n setIsPanning(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n };\n\n const handlePointerMove = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan || !isPanning || panStartRef.current.pointerId !== event.pointerId) {\n return;\n }\n\n setOffset({\n x: event.clientX - panStartRef.current.x,\n y: event.clientY - panStartRef.current.y,\n });\n };\n\n const handlePointerUp = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan || panStartRef.current.pointerId !== event.pointerId) {\n return;\n }\n\n setIsPanning(false);\n event.currentTarget.releasePointerCapture(event.pointerId);\n };\n\n useEffect(() => {\n if (canPan) {\n return;\n }\n\n setOffset({ x: 0, y: 0 });\n setIsPanning(false);\n }, [canPan]);\n\n return (\n <Box\n data-testid=\"mermaid-diagram-surface\"\n position=\"relative\"\n minHeight={minHeight}\n maxHeight={maxHeight}\n overflow=\"hidden\"\n cursor={canPan ? (isPanning ? \"grabbing\" : \"grab\") : \"default\"}\n touchAction={canPan ? \"none\" : \"auto\"}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={() => {\n setIsPanning(false);\n }}\n >\n <Box\n data-testid=\"mermaid-diagram-transform\"\n data-pan-enabled={canPan ? \"true\" : \"false\"}\n width=\"100%\"\n maxHeight={maxHeight}\n textAlign=\"center\"\n transform={`translate3d(${offset.x}px, ${offset.y}px, 0) scale(${zoom})`}\n transformOrigin=\"top left\"\n cursor={canPan ? (isPanning ? \"grabbing\" : \"grab\") : \"default\"}\n css={{\n \"& img\": {\n display: \"inline-block\",\n width: \"auto\",\n maxWidth: \"100%\",\n maxHeight,\n height: \"auto\",\n userSelect: \"none\",\n },\n }}\n >\n <img alt=\"Mermaid diagram\" draggable={false} src={createSvgDataUrl(svg)} />\n </Box>\n {overlayActions}\n <MermaidZoomControls zoom={zoom} onZoomChange={onZoomChange} />\n </Box>\n );\n};\n","import mermaid from \"mermaid\";\nimport { useEffect, useState } from \"react\";\nimport { getThemePreferenceMode, type ThemePreferenceMode } from \"../../utils/apply-theme-preference\";\nimport { useThemePreference } from \"../../utils/theme-preference\";\n\nlet initializedMode: ThemePreferenceMode | null = null;\nlet renderSequence = 0;\nlet renderQueue = Promise.resolve();\n\nconst getMermaidTheme = (mode: ThemePreferenceMode) => (mode === \"dark\" ? \"dark\" : \"default\");\n\nconst initializeMermaid = (mode: ThemePreferenceMode) => {\n if (initializedMode === mode) {\n return;\n }\n\n mermaid.initialize({\n startOnLoad: false,\n htmlLabels: true,\n flowchart: {\n htmlLabels: true,\n },\n securityLevel: \"antiscript\",\n theme: getMermaidTheme(mode),\n });\n\n initializedMode = mode;\n};\n\nconst nextRenderId = () => {\n renderSequence += 1;\n return `mermaid-${renderSequence}`;\n};\n\nconst renderMermaidDiagram = (mode: ThemePreferenceMode, code: string) => {\n const render = async () => {\n // Mermaid keeps render config in a shared singleton, so theme changes must not overlap renders.\n initializeMermaid(mode);\n return mermaid.render(nextRenderId(), code);\n };\n\n const queuedRender = renderQueue.then(render, render);\n renderQueue = queuedRender.then(\n () => undefined,\n () => undefined,\n );\n\n return queuedRender;\n};\n\nconst formatMermaidError = (error: unknown) => {\n if (!(error instanceof Error)) {\n return \"Failed to render Mermaid diagram.\";\n }\n\n const message = error.message.trim();\n if (!message) {\n return \"Failed to render Mermaid diagram.\";\n }\n\n return message.split(\"\\n\").filter(Boolean).slice(0, 3).join(\"\\n\");\n};\n\nexport const useMermaidRender = (code: string) => {\n const { themePreference, themePreferences } = useThemePreference();\n const themeMode = getThemePreferenceMode(themePreference, themePreferences);\n const [svg, setSvg] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [isRendering, setIsRendering] = useState(false);\n\n useEffect(() => {\n let cancelled = false;\n\n const renderDiagram = async () => {\n setIsRendering(true);\n setError(\"\");\n\n try {\n const result = await renderMermaidDiagram(themeMode, code);\n if (cancelled) {\n return;\n }\n\n setSvg(result.svg);\n } catch (renderError) {\n if (cancelled) {\n return;\n }\n\n setSvg(\"\");\n setError(formatMermaidError(renderError));\n } finally {\n if (!cancelled) {\n setIsRendering(false);\n }\n }\n };\n\n void renderDiagram();\n\n return () => {\n cancelled = true;\n };\n }, [code, themeMode]);\n\n return { svg, error, isRendering };\n};\n","import { Box, Text } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { downloadMermaidPng } from \"./download-png\";\nimport { MermaidErrorState } from \"./mermaid-error-state\";\nimport { MermaidFullscreen } from \"./mermaid-fullscreen\";\nimport { MermaidSvgView } from \"./mermaid-svg-view\";\nimport { MermaidInlineToolbar } from \"./mermaid-toolbar\";\nimport { useMermaidRender } from \"./use-mermaid-render\";\n\nexport interface MermaidRendererProps {\n code: string;\n initialFullscreenOpen?: boolean;\n initialZoom?: number;\n isEditable?: boolean;\n onRequestEdit?: () => void;\n}\n\ninterface MermaidPreviewContentProps {\n allowPanAtDefaultZoom?: boolean;\n code: string;\n error: string;\n isRendering: boolean;\n maxHeight?: string;\n minHeight?: string;\n overlayActions?: ReactNode;\n svg: string;\n zoom: number;\n onZoomChange: (zoom: number) => void;\n}\n\nconst MermaidPreviewContent = (props: MermaidPreviewContentProps) => {\n const {\n allowPanAtDefaultZoom,\n code,\n error,\n isRendering,\n maxHeight,\n minHeight,\n overlayActions,\n svg,\n zoom,\n onZoomChange,\n } = props;\n\n if (isRendering) {\n return (\n <Box position=\"relative\" minHeight={minHeight ?? \"220px\"} maxHeight={maxHeight} overflow=\"hidden\">\n <Text color=\"fg.muted\" textStyle=\"paragraph/S/regular\">\n Rendering diagram...\n </Text>\n {overlayActions}\n </Box>\n );\n }\n\n if (error) {\n return (\n <Box position=\"relative\" minHeight={minHeight ?? \"220px\"} maxHeight={maxHeight} overflow=\"hidden\">\n <MermaidErrorState code={code} error={error} />\n {overlayActions}\n </Box>\n );\n }\n\n return (\n <MermaidSvgView\n key={svg}\n allowPanAtDefaultZoom={allowPanAtDefaultZoom}\n maxHeight={maxHeight}\n minHeight={minHeight}\n overlayActions={overlayActions}\n svg={svg}\n zoom={zoom}\n onZoomChange={onZoomChange}\n />\n );\n};\n\nexport const MermaidRenderer = (props: MermaidRendererProps) => {\n const { code, initialFullscreenOpen = false, initialZoom = 1, isEditable = false, onRequestEdit } = props;\n const { svg, error, isRendering } = useMermaidRender(code);\n const [inlineZoom, setInlineZoom] = useState(initialZoom);\n const [fullscreenZoom, setFullscreenZoom] = useState(1);\n const [isFullscreenOpen, setIsFullscreenOpen] = useState(initialFullscreenOpen);\n const previousResetValuesRef = useRef({ code, initialZoom });\n const canDownload = Boolean(svg) && !error && !isRendering;\n\n useEffect(() => {\n const previousResetValues = previousResetValuesRef.current;\n if (previousResetValues.code === code && previousResetValues.initialZoom === initialZoom) {\n return;\n }\n\n previousResetValuesRef.current = { code, initialZoom };\n setInlineZoom(initialZoom);\n setFullscreenZoom(1);\n }, [code, initialZoom]);\n\n const openFullscreen = () => {\n setFullscreenZoom(1);\n setIsFullscreenOpen(true);\n };\n\n return (\n <Box width=\"100%\">\n <MermaidPreviewContent\n code={code}\n error={error}\n isRendering={isRendering}\n overlayActions={\n <MermaidInlineToolbar\n isEditable={isEditable}\n onRequestEdit={onRequestEdit}\n onOpenFullscreen={openFullscreen}\n />\n }\n svg={svg}\n zoom={inlineZoom}\n onZoomChange={setInlineZoom}\n />\n <MermaidFullscreen\n open={isFullscreenOpen}\n canDownload={canDownload}\n onClose={() => setIsFullscreenOpen(false)}\n onDownload={() => downloadMermaidPng({ svg, zoom: fullscreenZoom })}\n >\n <MermaidPreviewContent\n allowPanAtDefaultZoom\n code={code}\n error={error}\n isRendering={isRendering}\n maxHeight=\"100%\"\n minHeight=\"100%\"\n svg={svg}\n zoom={fullscreenZoom}\n onZoomChange={setFullscreenZoom}\n />\n </MermaidFullscreen>\n </Box>\n );\n};\n"],"mappings":"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"}
@@ -1,225 +0,0 @@
1
- import { t as e } from "./param-editor-field-BJ_rLUnV.js";
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
- import { c } from "react/compiler-runtime";
4
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
5
- import { useState as d } from "react";
6
- import { ChevronDown as f } from "lucide-react";
7
- //#region src/components/param-editor/param-editor-row.tsx
8
- var p = (n) => {
9
- let r = c(13), { param: i, values: a, onChange: o, onOpenResource: s, readOnly: u, fullWidth: d, variant: f } = n, p;
10
- r[0] === a ? p = r[1] : (p = a === void 0 ? {} : a, r[0] = a, r[1] = p);
11
- let h = p, g = (f === void 0 ? "default" : f) === "small", _ = g ? "2xs" : "xs", v = o ?? m, y = g ? "xs" : "sm", b;
12
- r[2] !== d || r[3] !== s || r[4] !== i || r[5] !== u || r[6] !== v || r[7] !== y || r[8] !== h ? (b = /* @__PURE__ */ l(e, {
13
- param: i,
14
- defaultValues: h,
15
- onChange: v,
16
- onOpenResource: s,
17
- readOnly: u,
18
- fullWidth: d,
19
- size: y
20
- }), r[2] = d, r[3] = s, r[4] = i, r[5] = u, r[6] = v, r[7] = y, r[8] = h, r[9] = b) : b = r[9];
21
- let x;
22
- return r[10] !== _ || r[11] !== b ? (x = /* @__PURE__ */ l(t, {
23
- px: "sm",
24
- py: _,
25
- children: b
26
- }), r[10] = _, r[11] = b, r[12] = x) : x = r[12], x;
27
- };
28
- function m() {}
29
- //#endregion
30
- //#region src/components/param-editor/param-editor-section.tsx
31
- var h = (e) => {
32
- let t = c(7), { title: n, description: r } = e, i;
33
- t[0] === n ? i = t[1] : (i = /* @__PURE__ */ l(s, {
34
- textStyle: "label/M/medium",
35
- color: "fg",
36
- truncate: !0,
37
- children: n
38
- }), t[0] = n, t[1] = i);
39
- let a;
40
- t[2] === r ? a = t[3] : (a = r ? /* @__PURE__ */ l(s, {
41
- textStyle: "label/XS/regular",
42
- color: "fg.muted",
43
- lineClamp: 2,
44
- children: r
45
- }) : null, t[2] = r, t[3] = a);
46
- let d;
47
- return t[4] !== i || t[5] !== a ? (d = /* @__PURE__ */ u(o, {
48
- gap: "2xs",
49
- minW: "0",
50
- textAlign: "left",
51
- children: [i, a]
52
- }), t[4] = i, t[5] = a, t[6] = d) : d = t[6], d;
53
- }, g = (e) => {
54
- let t = c(14), { title: r, description: o, open: s, collapsible: d, onToggle: p } = e;
55
- if (!d) {
56
- let e;
57
- return t[0] !== o || t[1] !== r ? (e = /* @__PURE__ */ l(i, {
58
- alignItems: "center",
59
- justifyContent: "space-between",
60
- minHeight: "2.25rem",
61
- px: "sm",
62
- py: "xs",
63
- children: /* @__PURE__ */ l(h, {
64
- title: r,
65
- description: o
66
- })
67
- }), t[0] = o, t[1] = r, t[2] = e) : e = t[2], e;
68
- }
69
- let m;
70
- t[3] === Symbol.for("react.memo_cache_sentinel") ? (m = { bg: "transparent" }, t[3] = m) : m = t[3];
71
- let g;
72
- t[4] !== o || t[5] !== r ? (g = /* @__PURE__ */ l(h, {
73
- title: r,
74
- description: o
75
- }), t[4] = o, t[5] = r, t[6] = g) : g = t[6];
76
- let _ = s ? "rotate(0deg)" : "rotate(-90deg)", v;
77
- t[7] === _ ? v = t[8] : (v = /* @__PURE__ */ l(a, {
78
- as: f,
79
- boxSize: "14px",
80
- color: "fg.muted",
81
- flexShrink: 0,
82
- transform: _,
83
- transition: "transform 120ms ease"
84
- }), t[7] = _, t[8] = v);
85
- let y;
86
- return t[9] !== p || t[10] !== s || t[11] !== g || t[12] !== v ? (y = /* @__PURE__ */ u(n, {
87
- "aria-expanded": s,
88
- borderRadius: "0",
89
- height: "auto",
90
- justifyContent: "space-between",
91
- minHeight: "2.25rem",
92
- onClick: p,
93
- px: "sm",
94
- py: "xs",
95
- size: "xs",
96
- variant: "ghost",
97
- width: "full",
98
- _expanded: m,
99
- children: [g, v]
100
- }), t[9] = p, t[10] = s, t[11] = g, t[12] = v, t[13] = y) : y = t[13], y;
101
- }, _ = (e) => {
102
- let t = c(18), { params: n, defaultValues: r, onChange: i, onOpenResource: a, readOnly: s, fullWidth: u, defaultCollapsed: d, isFirst: f, variant: m } = e, h = d || f ? "2xs" : "xs";
103
- m === "small" && (h = "none");
104
- let g = h, _;
105
- if (t[0] !== r || t[1] !== u || t[2] !== i || t[3] !== a || t[4] !== n || t[5] !== s || t[6] !== m) {
106
- let e;
107
- t[8] !== r || t[9] !== u || t[10] !== i || t[11] !== a || t[12] !== s || t[13] !== m ? (e = (e) => /* @__PURE__ */ l(p, {
108
- param: e,
109
- values: r,
110
- onChange: i,
111
- onOpenResource: a,
112
- readOnly: s,
113
- fullWidth: u,
114
- variant: m
115
- }, e.id), t[8] = r, t[9] = u, t[10] = i, t[11] = a, t[12] = s, t[13] = m, t[14] = e) : e = t[14], _ = n.map(e), t[0] = r, t[1] = u, t[2] = i, t[3] = a, t[4] = n, t[5] = s, t[6] = m, t[7] = _;
116
- } else _ = t[7];
117
- let v;
118
- return t[15] !== h || t[16] !== _ ? (v = /* @__PURE__ */ l(o, {
119
- gap: "0",
120
- py: g,
121
- children: _
122
- }), t[15] = h, t[16] = _, t[17] = v) : v = t[17], v;
123
- }, v = (e) => {
124
- let t = c(22), { title: n, description: i, params: a, defaultValues: s, onChange: f, onOpenResource: p, readOnly: m, fullWidth: h, collapsible: v, defaultCollapsed: b, isFirst: x, variant: S } = e, C = b !== void 0 && b, w = x !== void 0 && x, T = S === void 0 ? "default" : S, [E, D] = d(!C), O = !!(n && v), k = !O || E, A = w ? "0" : "1px", j;
125
- t[0] !== O || t[1] !== k || t[2] !== i || t[3] !== n ? (j = n ? /* @__PURE__ */ l(g, {
126
- title: n,
127
- description: i,
128
- open: k,
129
- collapsible: O,
130
- onToggle: () => D(y)
131
- }) : null, t[0] = O, t[1] = k, t[2] = i, t[3] = n, t[4] = j) : j = t[4];
132
- let M;
133
- t[5] !== C || t[6] !== s || t[7] !== h || t[8] !== w || t[9] !== f || t[10] !== p || t[11] !== a || t[12] !== m || t[13] !== T ? (M = /* @__PURE__ */ l(r.Content, { children: /* @__PURE__ */ l(_, {
134
- params: a,
135
- defaultValues: s,
136
- onChange: f,
137
- onOpenResource: p,
138
- readOnly: m,
139
- fullWidth: h,
140
- defaultCollapsed: C,
141
- isFirst: w,
142
- variant: T
143
- }) }), t[5] = C, t[6] = s, t[7] = h, t[8] = w, t[9] = f, t[10] = p, t[11] = a, t[12] = m, t[13] = T, t[14] = M) : M = t[14];
144
- let N;
145
- t[15] !== k || t[16] !== M ? (N = /* @__PURE__ */ l(r.Root, {
146
- open: k,
147
- children: M
148
- }), t[15] = k, t[16] = M, t[17] = N) : N = t[17];
149
- let P;
150
- return t[18] !== A || t[19] !== j || t[20] !== N ? (P = /* @__PURE__ */ u(o, {
151
- as: "section",
152
- gap: "0",
153
- borderTopWidth: A,
154
- borderColor: "border.subtle",
155
- minW: "0",
156
- children: [j, N]
157
- }), t[18] = A, t[19] = j, t[20] = N, t[21] = P) : P = t[21], P;
158
- };
159
- function y(e) {
160
- return !e;
161
- }
162
- //#endregion
163
- //#region src/components/param-editor/param-editor.tsx
164
- var b = (e) => {
165
- let t = c(34), { params: n, groups: r, defaultValues: i, onChange: a, onOpenResource: s, readOnly: d, fullWidth: f, variant: p } = e, m;
166
- t[0] === n ? m = t[1] : (m = n === void 0 ? [] : n, t[0] = n, t[1] = m);
167
- let h = m, g;
168
- t[2] === r ? g = t[3] : (g = r === void 0 ? [] : r, t[2] = r, t[3] = g);
169
- let _ = g, y;
170
- t[4] === i ? y = t[5] : (y = i === void 0 ? {} : i, t[4] = i, t[5] = y);
171
- let b = y, S = f !== void 0 && f, C = p === void 0 ? "default" : p, w = a ?? x, T;
172
- t[6] !== b || t[7] !== S || t[8] !== w || t[9] !== s || t[10] !== h || t[11] !== d || t[12] !== C ? (T = h.length > 0 ? /* @__PURE__ */ l(v, {
173
- params: h,
174
- defaultValues: b,
175
- onChange: w,
176
- onOpenResource: s,
177
- readOnly: d,
178
- fullWidth: S,
179
- variant: C,
180
- isFirst: !0
181
- }) : null, t[6] = b, t[7] = S, t[8] = w, t[9] = s, t[10] = h, t[11] = d, t[12] = C, t[13] = T) : T = t[13];
182
- let E;
183
- if (t[14] !== b || t[15] !== S || t[16] !== _ || t[17] !== w || t[18] !== s || t[19] !== h.length || t[20] !== d || t[21] !== C) {
184
- let e;
185
- t[23] !== b || t[24] !== S || t[25] !== w || t[26] !== s || t[27] !== h.length || t[28] !== d || t[29] !== C ? (e = (e, t) => /* @__PURE__ */ l(v, {
186
- title: e.title,
187
- description: e.description,
188
- params: e.params,
189
- defaultValues: b,
190
- onChange: w,
191
- onOpenResource: s,
192
- readOnly: d,
193
- fullWidth: S,
194
- variant: C,
195
- collapsible: e.collapsible,
196
- defaultCollapsed: e.defaultCollapsed,
197
- isFirst: h.length === 0 && t === 0
198
- }, e.id), t[23] = b, t[24] = S, t[25] = w, t[26] = s, t[27] = h.length, t[28] = d, t[29] = C, t[30] = e) : e = t[30], E = _.map(e), t[14] = b, t[15] = S, t[16] = _, t[17] = w, t[18] = s, t[19] = h.length, t[20] = d, t[21] = C, t[22] = E;
199
- } else E = t[22];
200
- let D;
201
- return t[31] !== T || t[32] !== E ? (D = /* @__PURE__ */ u(o, {
202
- flex: "1",
203
- maxW: "full",
204
- gap: "0",
205
- children: [T, E]
206
- }), t[31] = T, t[32] = E, t[33] = D) : D = t[33], D;
207
- };
208
- function x() {}
209
- //#endregion
210
- //#region src/components/param-editor/param-editor-control-list.tsx
211
- var S = (e) => {
212
- let t = c(6), n, r;
213
- t[0] === e ? (n = t[1], r = t[2]) : ({children: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
214
- let i;
215
- return t[3] !== n || t[4] !== r ? (i = /* @__PURE__ */ l(o, {
216
- gap: "sm",
217
- minW: "0",
218
- ...r,
219
- children: n
220
- }), t[3] = n, t[4] = r, t[5] = i) : i = t[5], i;
221
- };
222
- //#endregion
223
- export { p as i, b as n, v as r, S as t };
224
-
225
- //# sourceMappingURL=param-editor-BQd4AOUP.js.map