@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.
- package/dist/{MermaidComponent-81jr28u4.js → MermaidComponent-BCiI63_G.js} +3 -3
- package/dist/{MermaidComponent-81jr28u4.js.map → MermaidComponent-BCiI63_G.js.map} +1 -1
- package/dist/chat-question-bubble-w2vMbFsS.js +68 -0
- package/dist/chat-question-bubble-w2vMbFsS.js.map +1 -0
- package/dist/chat-ui.d.ts +96 -21
- package/dist/chat-ui.js +2091 -1441
- package/dist/chat-ui.js.map +1 -1
- package/dist/{data-table-stats-row-CpRe_xK2.js → data-table-stats-row-EiTEONdY.js} +2 -2
- package/dist/{data-table-stats-row-CpRe_xK2.js.map → data-table-stats-row-EiTEONdY.js.map} +1 -1
- package/dist/data-table.d.ts +27 -7
- package/dist/data-table.js +1035 -872
- package/dist/data-table.js.map +1 -1
- package/dist/diff-bubble-DewUd_2w.js +61 -0
- package/dist/diff-bubble-DewUd_2w.js.map +1 -0
- package/dist/{diff-drawer-45rpk3aq.js → diff-drawer-BwZBOObe.js} +106 -85
- package/dist/diff-drawer-BwZBOObe.js.map +1 -0
- package/dist/diff-viewer-kOOd7C7h.js +574 -0
- package/dist/diff-viewer-kOOd7C7h.js.map +1 -0
- package/dist/diff.d.ts +11 -0
- package/dist/diff.js +107 -98
- package/dist/diff.js.map +1 -1
- package/dist/display-sort-control-DPxc0e5z.js +587 -0
- package/dist/display-sort-control-DPxc0e5z.js.map +1 -0
- package/dist/{workspace-badge-Brm3Xr3m.d.ts → host-storage-DP0RLj4i.d.ts} +15 -1
- package/dist/{index-Bfddrlz8.d.ts → index-C9mywhyX.d.ts} +50 -14
- package/dist/index-D3UJyWWh.d.ts +501 -0
- package/dist/{index-CbtbcvKm.d.ts → index-DlmvvQ6x.d.ts} +1 -1
- package/dist/index.d.ts +44 -19
- package/dist/index.js +941 -908
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer.d.ts +2 -326
- package/dist/kanban-renderer.js +991 -610
- package/dist/kanban-renderer.js.map +1 -1
- package/dist/list-row-DM0DiIrN.js +1167 -0
- package/dist/list-row-DM0DiIrN.js.map +1 -0
- package/dist/{mermaid-renderer-DImi0fDp.js → mermaid-renderer-0PmNkOXI.js} +29 -29
- package/dist/mermaid-renderer-0PmNkOXI.js.map +1 -0
- package/dist/mermaid.js +1 -1
- package/dist/param-editor.js +2 -3
- package/dist/prism-JVIsQMoJ.js +1029 -0
- package/dist/prism-JVIsQMoJ.js.map +1 -0
- package/dist/{resource-badge-95WPVlZf.d.ts → resource-badge-nOWPqxFU.d.ts} +1 -0
- package/dist/rich-text-DM24VNQZ.js +10447 -0
- package/dist/rich-text-DM24VNQZ.js.map +1 -0
- package/dist/rich-text.d.ts +2 -2
- package/dist/rich-text.js +2 -2
- package/dist/style.css +1 -1
- package/dist/terminal.d.ts +5 -63
- package/dist/terminal.js +102 -122
- package/dist/terminal.js.map +1 -1
- package/dist/{theme-CbmSEbRF.js → theme-at0rtSnX.js} +435 -245
- package/dist/theme-at0rtSnX.js.map +1 -0
- package/dist/theme-kKuLN2jb.js +80 -0
- package/dist/theme-kKuLN2jb.js.map +1 -0
- package/dist/theme-preference-BV4cbJNB.js +115 -0
- package/dist/theme-preference-BV4cbJNB.js.map +1 -0
- package/dist/theme.js +3 -2
- package/dist/{tree-list-BNZwjQZA.js → tree-list-Cqgl8mnN.js} +255 -250
- package/dist/tree-list-Cqgl8mnN.js.map +1 -0
- package/package.json +4 -4
- package/dist/diff-bubble-DZsarmSG.js +0 -61
- package/dist/diff-bubble-DZsarmSG.js.map +0 -1
- package/dist/diff-drawer-45rpk3aq.js.map +0 -1
- package/dist/diff-viewer-BP_mI6Wx.js +0 -558
- package/dist/diff-viewer-BP_mI6Wx.js.map +0 -1
- package/dist/list-row-uqD-q4gv.js +0 -1018
- package/dist/list-row-uqD-q4gv.js.map +0 -1
- package/dist/mermaid-renderer-DImi0fDp.js.map +0 -1
- package/dist/param-editor-BQd4AOUP.js +0 -225
- package/dist/param-editor-BQd4AOUP.js.map +0 -1
- package/dist/param-editor-field-BJ_rLUnV.js +0 -2385
- package/dist/param-editor-field-BJ_rLUnV.js.map +0 -1
- package/dist/prism-BStPsJSB.js +0 -658
- package/dist/prism-BStPsJSB.js.map +0 -1
- package/dist/rich-text-VYAmEigU.js +0 -6979
- package/dist/rich-text-VYAmEigU.js.map +0 -1
- package/dist/slider-hwHYe98I.js +0 -423
- package/dist/slider-hwHYe98I.js.map +0 -1
- package/dist/theme-CbmSEbRF.js.map +0 -1
- package/dist/theme-preference-pzfuK5cH.js +0 -101
- package/dist/theme-preference-pzfuK5cH.js.map +0 -1
- package/dist/tree-list-BNZwjQZA.js.map +0 -1
- package/dist/types-DWA3enV6.d.ts +0 -182
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-row-DM0DiIrN.js","names":["chakra","Menu","Portal","useMenu","ComponentProps","Fragment","ReactElement","ReactNode","useRef","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","tabIndex","t1","map","_temp","t2","t3","ResourceActionMenu","undefined","placement","length","t4","t5","t6","ResourceContextMenu","keyboardTrigger","trigger","current","requestAnimationFrame","focus","onEscapeKeyDown","menu","t7","api","getContextTriggerProps","triggerProps","t8","event","pointerType","stopPropagation","onPointerDown","t9","event_0","defaultPrevented","shiftKey","preventDefault","bounds","currentTarget","getBoundingClientRect","dispatchEvent","MouseEvent","bubbles","cancelable","clientX","left","clientY","bottom","t10","event_1","onContextMenu","t11","t12","t13","t14","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","Checkbox","ChakraCheckbox","React","CheckboxProps","RootProps","icon","ReactNode","inputProps","InputHTMLAttributes","HTMLInputElement","rootRef","RefObject","HTMLLabelElement","forwardRef","props","ref","$","_c","children","rest","t0","t1","disabled","readOnly","undefined","enabledCursor","interactiveCursor","t2","t3","t4","t5","Symbol","for","borderColor","outline","boxShadow","t6","bg","color","_hover","_active","t7","t8","t9","t10","t11","Checkbox","_c","ChakraCheckbox","Box","HStack","Icon","Menu","Text","Check","ReactNode","ListRow","Checkbox","SearchableMenuItem","SearchableMenuRowProps","item","multiple","SearchableMenuRow","props","$","_c","iconSize","variant","t0","isSelected","secondaryLabel","Boolean","tabIndex","undefined","endContent","t1","Symbol","for","t2","t3","bg","t4","t5","t6","t7","icon","iconColor","label","t8","t9","id","isDisabled","tooltipLabel","content","t10","t11","t12","onSelect","_c","Checkbox","Icon","Menu","Portal","ChevronDown","ElementType","ReactNode","useEffect","useRef","useState","Header","ListRow","ScrollArea","SearchableMenuInput","SearchableMenuRow","MenuRootProps","React","ComponentProps","Root","MenuContentProps","Content","SearchableMenuItem","id","label","searchText","secondaryLabel","tooltipLabel","icon","iconColor","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","multiple","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","t7","undefined","hasParentList","internalOpen","setInternalOpen","setQuery","activeList","setActiveList","inputRef","isOpen","config","filteredItems","previousListIdRef","current","t8","timeout","setTimeout","focus","clearTimeout","t9","details","handleOpenChange","t10","details_0","find","i","value","handleMenuItemSelect","t11","_temp","event_0","event","stopPropagation","_temp2","parentListHeader","resolvedHeader","shouldShowSeparator","searchInput","t12","t13","t14","t15","t16","t17","T0","t18","Symbol","for","overscrollBehavior","t19","t20","t21","length","map","item_0","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","iconLabelGaps","Record","collection","tree","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","keyboardTrigger","useRef","trigger","menu","useMenu","t7","triggerProps","t8","Fragment","event","t9","event_0","bounds","t10","event_1","t11","chakra","t12","t13","t14","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","Checkbox$1","icon","inputProps","rootRef","disabled","readOnly","interactiveCursor","Checkbox","SearchableMenuRow","iconSize","multiple","endContent","Check","content","filterSearchableMenuItems","normalizedQuery","query","shouldResetSearchableMenuQuery","currentListId","nextListId","resolveActiveListConfig","isShowingParent","parentList","childConfig","SearchableMenu","filterItems","width","maxListHeight","showSearch","lazyMount","portalled","hasParentList","internalOpen","setInternalOpen","useState","setQuery","activeList","setActiveList","isOpen","config","listId","filteredItems","previousListIdRef","useEffect","timeout","handleOpenChange","i","details_0","handleMenuItemSelect","_temp$3","_temp2$3","ChevronDown","resolvedHeader","header","shouldShowSeparator","searchInput","t17","T0","t18","t21","item_0","t22","t23","t24","menuPositioner","t25","t26","t27","t28","t29","onFocusOutside","current","SearchableActionMenu","_temp$2","IconButton","_temp2$2","keyedTooltip","child","RowActions","alwaysVisible","context","_temp2$1","_temp$1","createResourceRowActions","contextMenuItems","showContextMenuTrigger","inlineMenuItems","inlineIds","menuItem","resourceMenuItems","index","iconLabelGaps","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","forwardRef","roleProp","rootProps","isSelected","showExpandToggle","selectedBg","hoverBg","asChild","setMenuOpen","useId","href","id","indicator","isContainer","isNavigable","menuItems","menuPlacement","navigationIntent","onActivate","tooltip","draggable","onDragEnd","onDragOver","onDragStart","onDrop","dragProps","hasChildren","hasMenuItems","hasActions","onToggleExpand","handleActivate","onClick","handleClick","_temp","handleMenuClick","t15","onKeyDown","_temp2","handleKeyDown","paddingLeft","verticalPadding","t16","activationProps","rowRole","rowProps","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/primitives/checkbox.tsx","../src/components/overlays/searchable-menu-row.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, useRef } 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\", tabIndex: -1 }}>\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 keyboardTrigger = useRef<HTMLElement | null>(null);\n const menu = useMenu({\n positioning,\n closeOnSelect,\n onEscapeKeyDown: () => {\n // Positioned context menus do not restore trigger focus themselves.\n const trigger = keyboardTrigger.current;\n keyboardTrigger.current = null;\n if (trigger) requestAnimationFrame(() => trigger.focus());\n },\n });\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 onPointerDown={(event) => {\n if (actions.length === 0 || event.pointerType === \"mouse\") return;\n keyboardTrigger.current = null;\n // Only the nearest populated menu starts the shared touch-hold gesture.\n event.stopPropagation();\n triggerProps.onPointerDown?.(event);\n }}\n onKeyDown={(event) => {\n if (event.defaultPrevented || actions.length === 0) return;\n if (event.key !== \"ContextMenu\" && !(event.shiftKey && event.key === \"F10\")) return;\n event.preventDefault();\n event.stopPropagation();\n const bounds = event.currentTarget.getBoundingClientRect();\n event.currentTarget.dispatchEvent(\n new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n clientX: bounds.left,\n clientY: bounds.bottom,\n }),\n );\n keyboardTrigger.current = event.currentTarget;\n }}\n onContextMenu={(event) => {\n keyboardTrigger.current = null;\n if (actions.length > 0 && !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 { Checkbox as ChakraCheckbox } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface CheckboxProps extends ChakraCheckbox.RootProps {\n icon?: React.ReactNode;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(props, ref) {\n const { icon, children, inputProps, rootRef, disabled = false, readOnly = false, ...rest } = props;\n const enabledCursor = readOnly ? \"default\" : \"pointer\";\n const interactiveCursor = disabled ? \"not-allowed\" : enabledCursor;\n\n return (\n <ChakraCheckbox.Root ref={rootRef} disabled={disabled} readOnly={readOnly} cursor={interactiveCursor} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <ChakraCheckbox.Control\n bg=\"bg\"\n borderColor=\"border\"\n color=\"fg.button.primary.default\"\n cursor={interactiveCursor}\n transition=\"border-color 0.2s ease-in-out\"\n boxShadow=\"none\"\n _hover={{ borderColor: \"border.accent-light\" }}\n _active={{ borderColor: \"border.accent-light\" }}\n _focusVisible={{ borderColor: \"border.accent-light\", outline: \"none\", boxShadow: \"none\" }}\n _checked={{\n bg: \"bg.button.primary.default\",\n borderColor: \"bg.button.primary.default\",\n color: \"fg.button.primary.default\",\n _hover: { borderColor: \"bg.button.primary.default\" },\n _active: { borderColor: \"bg.button.primary.default\" },\n }}\n _indeterminate={{\n bg: \"bg.button.primary.default\",\n borderColor: \"bg.button.primary.default\",\n color: \"fg.button.primary.default\",\n _hover: { borderColor: \"bg.button.primary.default\" },\n _active: { borderColor: \"bg.button.primary.default\" },\n }}\n >\n {icon ? <ChakraCheckbox.Indicator>{icon}</ChakraCheckbox.Indicator> : <ChakraCheckbox.Indicator />}\n </ChakraCheckbox.Control>\n {children != null && <ChakraCheckbox.Label cursor={interactiveCursor}>{children}</ChakraCheckbox.Label>}\n </ChakraCheckbox.Root>\n );\n});\n","import { Box, HStack, Icon, Menu, Text } from \"@chakra-ui/react\";\nimport { Check } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { ListRow } from \"@/components/list-row/list-row\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport type { SearchableMenuItem } from \"./searchable-menu\";\n\ninterface SearchableMenuRowProps {\n item: SearchableMenuItem;\n multiple: boolean;\n}\n\nexport const SearchableMenuRow = (props: SearchableMenuRowProps) => {\n const { item, multiple } = props;\n const iconSize = item.variant === \"compact\" ? \"3\" : \"3.5\";\n let endContent: ReactNode = multiple ? (\n <HStack gap=\"xs\">\n {item.secondaryLabel}\n <Checkbox\n checked={Boolean(item.isSelected)}\n readOnly\n pointerEvents=\"none\"\n size={item.variant === \"compact\" ? \"xs\" : \"sm\"}\n inputProps={{ tabIndex: -1, \"aria-hidden\": true }}\n />\n </HStack>\n ) : undefined;\n if (!multiple && item.isSelected) endContent = <Icon as={Check} boxSize=\"3.5\" />;\n const content = (\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 id={item.id}\n role=\"presentation\"\n variant={item.variant ?? \"full-width\"}\n disabled={item.isDisabled}\n tooltip={item.tooltipLabel}\n description={multiple ? undefined : item.secondaryLabel}\n isSelected={!multiple && item.isSelected}\n label={\n multiple ? (\n <HStack minW=\"0\" gap=\"xs\">\n {item.icon ? <Icon as={item.icon} boxSize={iconSize} color={item.iconColor ?? \"fg.muted\"} /> : null}\n <Text textStyle=\"label/S/regular\" truncate>\n {item.label}\n </Text>\n </HStack>\n ) : (\n item.label\n )\n }\n icon={\n !multiple && item.icon ? (\n <Icon as={item.icon} boxSize={iconSize} color={item.iconColor ?? \"fg.muted\"} />\n ) : undefined\n }\n endContent={endContent}\n />\n </Box>\n );\n if (multiple)\n return (\n <Menu.CheckboxItem\n value={item.id}\n checked={Boolean(item.isSelected)}\n disabled={item.isDisabled}\n onCheckedChange={item.onSelect}\n asChild\n >\n {content}\n </Menu.CheckboxItem>\n );\n return (\n <Menu.Item value={item.id} disabled={item.isDisabled} onClick={item.onSelect} asChild>\n {content}\n </Menu.Item>\n );\n};\n","import { Icon, Menu, Portal } from \"@chakra-ui/react\";\nimport { 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 { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { SearchableMenuInput } from \"./searchable-menu-input\";\nimport { SearchableMenuRow } from \"./searchable-menu-row\";\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 iconColor?: string;\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 multiple?: boolean;\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 multiple = false,\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 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={parentList.selectedIcon ? <Icon as={parentList.selectedIcon} boxSize=\"14px\" /> : undefined}\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 <SearchableMenuRow key={item.id} item={item} multiple={multiple && !isShowingParent} />\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 iconLabelGaps: Record<string, string> = { collection: \"compact\", tree: \"1\" };\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 = iconLabelGaps[variant ?? \"\"] ?? \"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,5 +1,5 @@
|
|
|
1
1
|
import { n as e, t } from "./scroll-area-Cr1lNXAr.js";
|
|
2
|
-
import { c as n, r } from "./theme-preference-
|
|
2
|
+
import { c as n, r } from "./theme-preference-BV4cbJNB.js";
|
|
3
3
|
import { Box as i, Button as a, Dialog as o, Icon as s, IconButton as c, Portal as l, Stack as u, Text as d } from "@chakra-ui/react";
|
|
4
4
|
import { c as f } from "react/compiler-runtime";
|
|
5
5
|
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
@@ -333,36 +333,36 @@ var K = (e) => {
|
|
|
333
333
|
t[9] === E ? j = t[10] : (j = (e) => {
|
|
334
334
|
E && T.current.pointerId === e.pointerId && (C(!1), e.currentTarget.releasePointerCapture(e.pointerId));
|
|
335
335
|
}, t[9] = E, t[10] = j);
|
|
336
|
-
let M = j, N, P;
|
|
337
|
-
t[11] === E ? (
|
|
336
|
+
let M = j, N = E ? S ? "grabbing" : "grab" : "default", P, I;
|
|
337
|
+
t[11] === E ? (P = t[12], I = t[13]) : (P = () => {
|
|
338
338
|
E || (x({
|
|
339
339
|
x: 0,
|
|
340
340
|
y: 0
|
|
341
341
|
}), C(!1));
|
|
342
|
-
},
|
|
343
|
-
let
|
|
342
|
+
}, I = [E], t[11] = E, t[12] = P, t[13] = I), h(P, I);
|
|
343
|
+
let L = E ? "none" : "auto", R;
|
|
344
344
|
t[14] === Symbol.for("react.memo_cache_sentinel") ? (R = () => {
|
|
345
345
|
C(!1);
|
|
346
346
|
}, t[14] = R) : R = t[14];
|
|
347
|
-
let z = E ? "true" : "false", B = `translate3d(${b.x}px, ${b.y}px, 0) scale(${c})`, V
|
|
348
|
-
t[15] === d ?
|
|
347
|
+
let z = E ? "true" : "false", B = `translate3d(${b.x}px, ${b.y}px, 0) scale(${c})`, V;
|
|
348
|
+
t[15] === d ? V = t[16] : (V = { "& img": {
|
|
349
349
|
display: "inline-block",
|
|
350
350
|
width: "auto",
|
|
351
351
|
maxWidth: "100%",
|
|
352
352
|
maxHeight: d,
|
|
353
353
|
height: "auto",
|
|
354
354
|
userSelect: "none"
|
|
355
|
-
} }, t[15] = d, t[16] =
|
|
355
|
+
} }, t[15] = d, t[16] = V);
|
|
356
|
+
let H;
|
|
357
|
+
t[17] === s ? H = t[18] : (H = F(s), t[17] = s, t[18] = H);
|
|
356
358
|
let W;
|
|
357
|
-
t[
|
|
358
|
-
let G;
|
|
359
|
-
t[19] === W ? G = t[20] : (G = /* @__PURE__ */ p("img", {
|
|
359
|
+
t[19] === H ? W = t[20] : (W = /* @__PURE__ */ p("img", {
|
|
360
360
|
alt: "Mermaid diagram",
|
|
361
361
|
draggable: !1,
|
|
362
|
-
src:
|
|
363
|
-
}), t[19] =
|
|
364
|
-
let
|
|
365
|
-
t[21] !==
|
|
362
|
+
src: H
|
|
363
|
+
}), t[19] = H, t[20] = W);
|
|
364
|
+
let G;
|
|
365
|
+
t[21] !== N || t[22] !== d || t[23] !== z || t[24] !== B || t[25] !== V || t[26] !== W ? (G = /* @__PURE__ */ p(i, {
|
|
366
366
|
"data-testid": "mermaid-diagram-transform",
|
|
367
367
|
"data-pan-enabled": z,
|
|
368
368
|
width: "100%",
|
|
@@ -370,34 +370,34 @@ var K = (e) => {
|
|
|
370
370
|
textAlign: "center",
|
|
371
371
|
transform: B,
|
|
372
372
|
transformOrigin: "top left",
|
|
373
|
-
cursor:
|
|
374
|
-
css:
|
|
375
|
-
children:
|
|
376
|
-
}), t[21] =
|
|
377
|
-
let
|
|
378
|
-
t[28] !== l || t[29] !== c ? (
|
|
373
|
+
cursor: N,
|
|
374
|
+
css: V,
|
|
375
|
+
children: W
|
|
376
|
+
}), t[21] = N, t[22] = d, t[23] = z, t[24] = B, t[25] = V, t[26] = W, t[27] = G) : G = t[27];
|
|
377
|
+
let K;
|
|
378
|
+
t[28] !== l || t[29] !== c ? (K = /* @__PURE__ */ p(U, {
|
|
379
379
|
zoom: c,
|
|
380
380
|
onZoomChange: l
|
|
381
|
-
}), t[28] = l, t[29] = c, t[30] =
|
|
382
|
-
let
|
|
383
|
-
return t[31] !==
|
|
381
|
+
}), t[28] = l, t[29] = c, t[30] = K) : K = t[30];
|
|
382
|
+
let q;
|
|
383
|
+
return t[31] !== N || t[32] !== O || t[33] !== A || t[34] !== M || t[35] !== d || t[36] !== v || t[37] !== o || t[38] !== L || t[39] !== G || t[40] !== K ? (q = /* @__PURE__ */ m(i, {
|
|
384
384
|
"data-testid": "mermaid-diagram-surface",
|
|
385
385
|
position: "relative",
|
|
386
386
|
minHeight: v,
|
|
387
387
|
maxHeight: d,
|
|
388
388
|
overflow: "hidden",
|
|
389
|
-
cursor:
|
|
389
|
+
cursor: N,
|
|
390
390
|
touchAction: L,
|
|
391
391
|
onPointerDown: O,
|
|
392
392
|
onPointerMove: A,
|
|
393
393
|
onPointerUp: M,
|
|
394
394
|
onPointerCancel: R,
|
|
395
395
|
children: [
|
|
396
|
-
|
|
396
|
+
G,
|
|
397
397
|
o,
|
|
398
|
-
|
|
398
|
+
K
|
|
399
399
|
]
|
|
400
|
-
}), t[31] =
|
|
400
|
+
}), t[31] = N, t[32] = O, t[33] = A, t[34] = M, t[35] = d, t[36] = v, t[37] = o, t[38] = L, t[39] = G, t[40] = K, t[41] = q) : q = t[41], q;
|
|
401
401
|
}, q = null, J = 0, Y = Promise.resolve(), X = (e) => e === "dark" ? "dark" : "default", Z = (e) => {
|
|
402
402
|
q !== e && (w.initialize({
|
|
403
403
|
startOnLoad: !1,
|
|
@@ -550,4 +550,4 @@ var K = (e) => {
|
|
|
550
550
|
//#endregion
|
|
551
551
|
export { re as t };
|
|
552
552
|
|
|
553
|
-
//# sourceMappingURL=mermaid-renderer-
|
|
553
|
+
//# sourceMappingURL=mermaid-renderer-0PmNkOXI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mermaid-renderer-0PmNkOXI.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","panCursor","cursor","t8","t9","t10","t11","t12","t13","t14","display","width","maxWidth","height","userSelect","t15","t16","t17","t18","t19","_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","cursor","useEffect","t13","t14","t15","t16","t17","t18","t19","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 const panCursor = isPanning ? \"grabbing\" : \"grab\";\n const cursor = canPan ? panCursor : \"default\";\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={cursor}\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={cursor}\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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"}
|
package/dist/mermaid.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "./mermaid-renderer-
|
|
1
|
+
import { t as e } from "./mermaid-renderer-0PmNkOXI.js";
|
|
2
2
|
export { e as MermaidRenderer };
|
package/dist/param-editor.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export { s as ANCHOR_GRID_VALUES, g as ActionInput, y as AnchorGridInput, t as BooleanInput, S as ColorInput, a as DateInput, f as FileUploadInput, C as HorizontalTextInput, b as MarkdownInput, r as NumberInput, T as ParamEditor, x as ParamEditorControlItem, D as ParamEditorControlList, v as ParamEditorField, n as ParamEditorFieldLabel, n as ParamEditorLabel, h as ParamEditorInlineGroup, m as ParamEditorReadOnlyField, e as ParamEditorReadOnlyValue, w as ParamEditorRow, E as ParamEditorSection, o as RangeInput, l as ResourceInput, _ as SegmentedInput, u as SelectionInput, p as TextInput, i as VectorInput, c as isAnchorGridValue, d as isParamEditorRichControl };
|
|
1
|
+
import { $ as e, G as t, J as n, K as r, Q as i, U as a, W as o, X as s, Z as c, at as l, ct as u, dt as d, et as f, ft as p, gt as m, ht as h, it as g, jt as _, lt as v, mt as y, nt as b, ot as x, pt as S, q as C, rt as w, st as T, tt as E, ut as D } from "./rich-text-DM24VNQZ.js";
|
|
2
|
+
export { S as ANCHOR_GRID_VALUES, h as ActionInput, d as AnchorGridInput, D as BooleanInput, v as ColorInput, u as DateInput, T as FileUploadInput, x as HorizontalTextInput, l as MarkdownInput, g as NumberInput, o as ParamEditor, m as ParamEditorControlItem, a as ParamEditorControlList, C as ParamEditorField, _ as ParamEditorFieldLabel, _ as ParamEditorLabel, i as ParamEditorInlineGroup, n as ParamEditorReadOnlyField, p as ParamEditorReadOnlyValue, r as ParamEditorRow, t as ParamEditorSection, w as RangeInput, b as ResourceInput, E as SegmentedInput, f as SelectionInput, e as TextInput, c as VectorInput, y as isAnchorGridValue, s as isParamEditorRichControl };
|