@pstdio/ui 0.2.2 → 0.2.4
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/chat-ui.js +689 -637
- package/dist/chat-ui.js.map +1 -1
- package/dist/components/chat-ui/components/chat-input.d.ts +1 -0
- package/dist/components/chat-ui/components/chat-panel-sticky-user-message.d.ts +4 -0
- package/dist/components/chat-ui/components/chat-panel.d.ts +3 -0
- package/dist/components/chat-ui/components/chat-panel.sticky-user-message.test.d.ts +1 -0
- package/dist/components/chat-ui/components/chat-panel.stories.d.ts +2 -0
- package/dist/components/chat-ui/components/chat-skeleton.d.ts +1 -0
- package/dist/components/chat-ui/components/workspace-hub.d.ts +9 -0
- package/dist/components/chat-ui/components/workspace-hub.stories.d.ts +6 -0
- package/dist/components/chat-ui/index.d.ts +2 -0
- package/dist/components/diff-editor.d.ts +2 -0
- package/dist/components/diff-view-adapter.d.ts +14 -0
- package/dist/components/diff-view-adapter.test.d.ts +1 -0
- package/dist/components/rich-text/shared/components/content-editable.d.ts +2 -1
- package/dist/components/tickets/types.d.ts +4 -6
- package/dist/empty-state-DHSKuwia.js +160 -0
- package/dist/empty-state-DHSKuwia.js.map +1 -0
- package/dist/index.js +1334 -1317
- package/dist/index.js.map +1 -1
- package/dist/{rich-message-C0_i-4Ux.js → rich-message-ZT2CEiwt.js} +413 -404
- package/dist/rich-message-ZT2CEiwt.js.map +1 -0
- package/dist/rich-text.js +5 -5
- package/dist/rich-text.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/tooltip-Dze4WXVl.js +86 -0
- package/dist/tooltip-Dze4WXVl.js.map +1 -0
- package/package.json +6 -4
- package/dist/rich-message-C0_i-4Ux.js.map +0 -1
- package/dist/scroll-area-DZs-GiIp.js +0 -267
- package/dist/scroll-area-DZs-GiIp.js.map +0 -1
- package/dist/tooltip-Gm7PLwZG.js +0 -51
- package/dist/tooltip-Gm7PLwZG.js.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/alert.tsx","../src/components/breadcrumb.tsx","../src/components/checkbox.tsx","../src/components/content-placeholder.tsx","../src/components/delete-confirmation-modal.tsx","../src/components/diff-card.tsx","../src/components/diff-drawer.tsx","../src/components/documentation/docs-changelog.tsx","../src/components/documentation/docs-outline.tsx","../src/components/documentation/docs-pagination.tsx","../src/components/item-section.tsx","../src/components/menu-item.tsx","../src/components/panel-menu.tsx","../src/components/documentation/docs-sidebar.tsx","../src/components/error-boundary.tsx","../src/components/folder-picker-dialog.tsx","../src/components/horizontal-menu-stack.tsx","../src/components/open-source-notices-screen.tsx","../src/components/properties.tsx","../src/components/session-indicator.tsx","../src/components/sidebar-tree/sidebar-tree.tsx","../src/components/sidebar-next/sidebar-next.store.ts","../src/components/sidebar-next/sidebar-next-footer.tsx","../src/components/sidebar-next/sidebar-next-header.tsx","../src/components/sidebar-next/sidebar-next.tsx","../src/components/switch.tsx","../src/components/tickets/display-menu.tsx","../src/components/tickets/filter-menu.tsx","../src/components/tickets/ticket-card.tsx","../src/components/tickets/ticket-board.tsx","../src/components/tickets/ticket-list.tsx","../src/components/tickets/ticket-grouping.ts","../src/components/tickets/types.ts","../src/components/tickets/use-workspace-store.ts","../src/components/tickets/tickets-workspace.tsx","../src/components/toaster.tsx","../src/utils/apply-theme-preference.ts","../src/utils/theme-preference.tsx"],"sourcesContent":["import { Alert as ChakraAlert } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface AlertProps extends Omit<ChakraAlert.RootProps, \"title\"> {\n startElement?: React.ReactNode;\n endElement?: React.ReactNode;\n title?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\nexport const AlertMessage = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n const { title, children, icon, startElement, endElement, ...rest } = props;\n return (\n <ChakraAlert.Root ref={ref} {...rest}>\n {startElement || <ChakraAlert.Indicator>{icon}</ChakraAlert.Indicator>}\n {children ? (\n <ChakraAlert.Content>\n <ChakraAlert.Title>{title}</ChakraAlert.Title>\n <ChakraAlert.Description>{children}</ChakraAlert.Description>\n </ChakraAlert.Content>\n ) : (\n <ChakraAlert.Title flex=\"1\">{title}</ChakraAlert.Title>\n )}\n {endElement}\n </ChakraAlert.Root>\n );\n});\n","import { Breadcrumb as ChakraBreadcrumb, type SystemStyleObject } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface BreadcrumbItem {\n title: React.ReactNode;\n url?: string;\n onClick?: () => void;\n}\n\nexport interface BreadcrumbLinkProps {\n to: string;\n children: React.ReactNode;\n}\n\nexport interface BreadcrumbProps extends ChakraBreadcrumb.RootProps {\n separator?: React.ReactNode;\n separatorGap?: SystemStyleObject[\"gap\"];\n items: BreadcrumbItem[];\n linkComponent?: React.ComponentType<BreadcrumbLinkProps>;\n}\n\nexport const Breadcrumb = React.forwardRef<HTMLDivElement, BreadcrumbProps>(function BreadcrumbRoot(props, ref) {\n const { separator, separatorGap, items, linkComponent: LinkComponent, ...rest } = props;\n\n return (\n <ChakraBreadcrumb.Root ref={ref} {...rest}>\n <ChakraBreadcrumb.List gap={separatorGap}>\n {items.map((item, index) => {\n const last = index === items.length - 1;\n const isInteractive = Boolean(item.url || item.onClick);\n let itemContent: React.ReactNode;\n\n if (last && !isInteractive) {\n itemContent = <ChakraBreadcrumb.CurrentLink>{item.title}</ChakraBreadcrumb.CurrentLink>;\n } else if (item.url) {\n itemContent = LinkComponent ? (\n <ChakraBreadcrumb.Link asChild>\n <LinkComponent to={item.url}>{item.title}</LinkComponent>\n </ChakraBreadcrumb.Link>\n ) : (\n <ChakraBreadcrumb.Link href={item.url}>{item.title}</ChakraBreadcrumb.Link>\n );\n } else if (item.onClick) {\n itemContent = (\n <ChakraBreadcrumb.Link as=\"button\" type=\"button\" onClick={item.onClick}>\n {item.title}\n </ChakraBreadcrumb.Link>\n );\n } else {\n itemContent = <ChakraBreadcrumb.Link>{item.title}</ChakraBreadcrumb.Link>;\n }\n\n return (\n <ChakraBreadcrumb.Item key={index}>\n {itemContent}\n {last ? null : (\n <ChakraBreadcrumb.Separator as=\"span\" aria-hidden ml=\"xs\">\n {separator}\n </ChakraBreadcrumb.Separator>\n )}\n </ChakraBreadcrumb.Item>\n );\n })}\n </ChakraBreadcrumb.List>\n </ChakraBreadcrumb.Root>\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, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraCheckbox.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <ChakraCheckbox.Control borderRadius=\"xs\" cursor={interactiveCursor}>\n {icon || <ChakraCheckbox.Indicator />}\n </ChakraCheckbox.Control>\n {children != null && <ChakraCheckbox.Label cursor={interactiveCursor}>{children}</ChakraCheckbox.Label>}\n </ChakraCheckbox.Root>\n );\n});\n","import { Box, type BoxProps, Text, type TextProps } from \"@chakra-ui/react\";\n\nexport interface ContentPlaceholderProps extends BoxProps {}\n\nexport const ContentPlaceholder = (props: ContentPlaceholderProps) => (\n <Box\n {...props}\n css={{\n backgroundClip: \"padding-box\",\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='0.2' fillRule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E\")`,\n display: \"flex\",\n width: \"100%\",\n }}\n />\n);\n\nexport const Label = (props: TextProps) => (\n <Box p=\"2\">\n <Text color=\"fg.muted\" fontWeight=\"medium\" textStyle=\"sm\" whiteSpace=\"nowrap\" {...props} />\n </Box>\n);\n","import { Button, CloseButton, Dialog, Stack, Text } from \"@chakra-ui/react\";\nimport { useState } from \"react\";\n\ninterface DeleteConfirmationModalProps {\n open: boolean;\n onClose: () => void;\n onDelete: () => void | Promise<void>;\n headline?: string;\n notificationText?: string;\n buttonText?: string;\n}\n\nexport type { DeleteConfirmationModalProps };\n\nexport const DeleteConfirmationModal = (props: DeleteConfirmationModalProps) => {\n const [isDeleting, setIsDeleting] = useState(false);\n const { headline, buttonText, notificationText, onDelete, open, onClose } = props;\n\n const handleDelete = async () => {\n setIsDeleting(true);\n\n try {\n await onDelete();\n onClose();\n } catch {\n // Errors surface through parent state.\n } finally {\n setIsDeleting(false);\n }\n };\n\n return (\n <Dialog.Root open={open} onOpenChange={onClose}>\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Text textStyle=\"heading/M\">{headline}</Text>\n <Dialog.CloseTrigger asChild>\n <CloseButton size=\"sm\" />\n </Dialog.CloseTrigger>\n </Dialog.Header>\n <Dialog.Body>{notificationText}</Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"1\">\n <Button onClick={onClose}>Close</Button>\n <Button loading={isDeleting} variant=\"solid\" colorPalette=\"red\" onClick={handleDelete}>\n {buttonText}\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { Box, Grid, IconButton, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { DiffEditor } from \"./diff-editor\";\n\nexport interface Diff {\n change: \"added\" | \"deleted\" | \"modified\" | \"renamed\" | \"copied\" | \"permissionChange\";\n oldPath?: string;\n newPath?: string;\n oldContent?: string;\n newContent?: string;\n additions?: number;\n deletions?: number;\n}\n\ninterface DiffCardProps {\n diff: Diff;\n}\n\nconst getLanguage = (path: string) => {\n const ext = path.split(\".\").pop()?.toLowerCase();\n switch (ext) {\n case \"ts\":\n case \"tsx\":\n return \"typescript\";\n case \"js\":\n case \"jsx\":\n return \"javascript\";\n case \"json\":\n return \"json\";\n case \"md\":\n return \"markdown\";\n case \"py\":\n return \"python\";\n case \"go\":\n return \"go\";\n case \"rs\":\n return \"rust\";\n case \"css\":\n return \"css\";\n case \"html\":\n return \"html\";\n case \"sh\":\n return \"shell\";\n case \"yml\":\n case \"yaml\":\n return \"yaml\";\n default:\n return \"plaintext\";\n }\n};\n\nexport const DiffCard = (props: DiffCardProps) => {\n const { diff } = props;\n const [isExpanded, setIsExpanded] = useState(true);\n\n const filePath = diff.newPath || diff.oldPath || \"unknown\";\n const language = getLanguage(filePath);\n\n const additions = diff.additions ?? 0;\n const deletions = diff.deletions ?? 0;\n\n return (\n <Box\n border=\"1px solid\"\n borderColor=\"border.muted\"\n borderRadius=\"xs\"\n overflow=\"hidden\"\n bg=\"bg\"\n width=\"100%\"\n maxW=\"100%\"\n >\n <Grid\n templateColumns=\"auto minmax(0, 1fr) auto\"\n px=\"xs\"\n py=\"2xs\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n borderBottom={isExpanded ? \"1px solid\" : \"none\"}\n borderColor=\"border.muted\"\n cursor=\"pointer\"\n onClick={() => setIsExpanded(!isExpanded)}\n gap=\"sm\"\n >\n <IconButton\n aria-label={isExpanded ? \"Collapse\" : \"Expand\"}\n variant=\"ghost\"\n size=\"2xs\"\n onClick={(event) => {\n event.stopPropagation();\n setIsExpanded(!isExpanded);\n }}\n flexShrink={0}\n >\n {isExpanded ? <ChevronDown size={16} /> : <ChevronRight size={16} />}\n </IconButton>\n\n <Box minW={0} overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" title={filePath}>\n {diff.change === \"renamed\" ? (\n <Text as=\"span\" textStyle=\"sm\">\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" mr=\"xs\">\n {diff.oldPath}\n </Text>\n <Box as=\"span\" display=\"inline-flex\" alignItems=\"center\" verticalAlign=\"middle\" mr=\"xs\">\n <ChevronRight size={12} />\n </Box>\n {diff.newPath}\n </Text>\n ) : diff.change === \"deleted\" ? (\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" textStyle=\"sm\">\n {filePath}\n </Text>\n ) : (\n <Text as=\"span\" textStyle=\"sm\">\n {filePath}\n </Text>\n )}\n </Box>\n\n <Box flexShrink={0}>\n <DiffBubble variant=\"ghost\" additions={additions} deletions={deletions} />\n </Box>\n </Grid>\n\n {isExpanded && (\n <Box height=\"400px\" bg=\"bg\">\n <DiffEditor\n original={diff.oldContent || \"\"}\n modified={diff.newContent || \"\"}\n language={language}\n sideBySide={false}\n disableScroll={false}\n />\n </Box>\n )}\n </Box>\n );\n};\n","import { Box, Stack } from \"@chakra-ui/react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { useRef } from \"react\";\nimport { type Diff, DiffCard } from \"./diff-card\";\nimport { EmptyState } from \"./empty-state\";\nimport { ScrollArea } from \"./scroll-area\";\n\ninterface DiffDrawerProps {\n diffs: Diff[];\n}\n\nexport type { Diff };\n\nexport function DiffDrawer(props: DiffDrawerProps) {\n const { diffs } = props;\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const virtualizer = useVirtualizer({\n count: diffs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => 42,\n overscan: 5,\n });\n\n if (diffs.length === 0) {\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: \"xs\", spaceY: \"xs\" }}>\n <EmptyState title=\"No changes detected\" description=\"Make some changes to see the diff here.\" paddingY=\"sm\" />\n </ScrollArea>\n </Stack>\n );\n }\n\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <Box position=\"relative\" flex=\"1\" minH=\"0\">\n <ScrollArea position=\"absolute\" inset=\"0\" viewportRef={scrollRef} contentProps={{ p: \"xs\" }}>\n <Box position=\"relative\" width=\"100%\" style={{ height: virtualizer.getTotalSize() }}>\n {virtualizer.getVirtualItems().map((virtualItem) => (\n <Box\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n width=\"100%\"\n pb=\"xs\"\n style={{ transform: `translateY(${virtualItem.start}px)` }}\n >\n <DiffCard diff={diffs[virtualItem.index]} />\n </Box>\n ))}\n </Box>\n </ScrollArea>\n </Box>\n </Stack>\n );\n}\n","import {\n Badge,\n Box,\n Flex,\n Heading,\n HStack,\n Image,\n Link,\n List,\n Stack,\n type StackProps,\n Text,\n Timeline,\n} from \"@chakra-ui/react\";\n\nexport interface DocsChangelogChange {\n title: string;\n description?: string;\n link?: string;\n}\n\nexport interface DocsChangelogEntry {\n version: string;\n date: string;\n tags?: string[];\n title: string;\n image?: string;\n description?: string;\n changes?: DocsChangelogChange[];\n}\n\nexport interface DocsChangelogProps {\n entries: DocsChangelogEntry[];\n title: string;\n description?: string;\n}\n\ninterface ChangelogDateProps extends StackProps {\n date: string;\n version: string;\n}\n\nconst getEntryKey = (entry: DocsChangelogEntry, index: number) => {\n return `${entry.version}-${entry.date}-${index}`;\n};\n\nconst getChangeKey = (change: DocsChangelogChange, index: number) => {\n return `${change.title}-${index}`;\n};\n\nconst ChangelogDate = (props: ChangelogDateProps) => {\n const { date, version, ...rest } = props;\n\n return (\n <Stack {...rest}>\n <Timeline.Title textStyle=\"sm\" color=\"fg.muted\">\n {date}\n </Timeline.Title>\n <Flex\n px=\"3\"\n py=\"2\"\n rounded=\"l3\"\n align=\"center\"\n justify=\"center\"\n borderWidth=\"1px\"\n textAlign=\"center\"\n alignSelf=\"flex-start\"\n >\n <Timeline.Title textStyle=\"md\" fontWeight=\"semibold\">\n {version}\n </Timeline.Title>\n </Flex>\n </Stack>\n );\n};\n\nexport const DocsChangelog = (props: DocsChangelogProps) => {\n const { entries, title, description } = props;\n\n return (\n <Stack gap=\"20\">\n <Stack textAlign=\"center\">\n <Heading size=\"4xl\">{title}</Heading>\n {description ? (\n <Text color=\"fg.muted\" textStyle=\"lg\">\n {description}\n </Text>\n ) : null}\n </Stack>\n\n <Box position=\"relative\">\n <Timeline.Root size=\"sm\" variant=\"solid\">\n {entries.map((entry, entryIndex) => (\n <Timeline.Item key={getEntryKey(entry, entryIndex)}>\n <Timeline.Content\n top=\"6\"\n width=\"48\"\n flexShrink=\"0\"\n hideBelow=\"md\"\n position={{ base: \"static\", md: \"sticky\" }}\n >\n <ChangelogDate hideBelow=\"md\" date={entry.date} version={entry.version} />\n </Timeline.Content>\n\n <Timeline.Connector>\n <Timeline.Separator />\n <Timeline.Indicator />\n </Timeline.Connector>\n\n <Timeline.Content>\n <Stack gap=\"4\">\n <ChangelogDate hideFrom=\"md\" date={entry.date} version={entry.version} />\n\n <Stack gap=\"2\">\n <Timeline.Title fontSize=\"lg\" fontWeight=\"medium\">\n {entry.title}\n </Timeline.Title>\n {entry.description ? (\n <Text color=\"fg.muted\" textStyle=\"sm\">\n {entry.description}\n </Text>\n ) : null}\n </Stack>\n\n {entry.tags && entry.tags.length > 0 ? (\n <HStack>\n {entry.tags.map((tag) => (\n <Badge\n key={tag}\n size=\"md\"\n rounded=\"l2\"\n variant=\"subtle\"\n colorPalette=\"gray\"\n textTransform=\"capitalize\"\n >\n {tag}\n </Badge>\n ))}\n </HStack>\n ) : null}\n\n {entry.image ? <Image rounded=\"l2\" src={entry.image} alt={entry.title} /> : null}\n\n {entry.changes && entry.changes.length > 0 ? (\n <List.Root pl=\"4\" gap=\"4\">\n {entry.changes.map((change, changeIndex) => (\n <List.Item key={getChangeKey(change, changeIndex)}>\n <Stack gap=\"1\">\n <Text color=\"fg.muted\" fontWeight=\"normal\" textStyle=\"sm\">\n {change.title}\n </Text>\n {change.description ? (\n <Text color=\"fg.subtle\" textStyle=\"xs\">\n {change.description}\n </Text>\n ) : null}\n {change.link ? (\n <Link href={change.link} textStyle=\"xs\" width=\"fit-content\">\n Learn more\n </Link>\n ) : null}\n </Stack>\n </List.Item>\n ))}\n </List.Root>\n ) : null}\n </Stack>\n </Timeline.Content>\n </Timeline.Item>\n ))}\n </Timeline.Root>\n </Box>\n </Stack>\n );\n};\n","import { Box, Collapsible, HStack, Icon, Stack, Text, useEnvironmentContext } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight, FileText } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\n\ninterface DocHeading {\n id: string;\n level: number;\n text: string;\n}\n\ninterface HeadingElementsMatch {\n elementsByHeadingId: Map<string, HTMLElement>;\n headingIdByElement: Map<HTMLElement, string>;\n}\n\nexport interface DocsOutlineProps {\n markdown: string;\n title?: string;\n rootMargin?: string;\n}\n\ninterface DocsOutlineItemProps {\n heading: DocHeading;\n isActive: boolean;\n emphasized: boolean;\n variant: \"line\" | \"minimal\";\n onSelect: (headingId: string) => void;\n}\n\nconst HEADING_REGEX = /^(#{1,3})\\s+(.+)$/gm;\nconst HEADING_SELECTOR = \".rich-text__h1, .rich-text__h2, .rich-text__h3\";\n\nconst isHeadingLevelMatch = (element: Element, level: number) => {\n return element.classList.contains(`rich-text__h${level}`);\n};\n\nconst slugifyHeading = (value: string) => {\n return value\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n};\n\nexport const extractHeadings = (markdown: string) => {\n const headings: DocHeading[] = [];\n let headingIndex = 0;\n\n for (const match of markdown.matchAll(HEADING_REGEX)) {\n const level = match[1]!.length;\n const text = match[2]!.trim();\n const slug = slugifyHeading(text);\n const id = `${slug || \"heading\"}-${headingIndex}`;\n\n headings.push({ id, level, text });\n headingIndex += 1;\n }\n\n return headings;\n};\n\nconst matchHeadingElements = (headings: DocHeading[], doc: Document) => {\n const elements = Array.from(doc.querySelectorAll(HEADING_SELECTOR));\n const elementsByHeadingId = new Map<string, HTMLElement>();\n const headingIdByElement = new Map<HTMLElement, string>();\n let nextElementIndex = 0;\n\n for (const heading of headings) {\n for (let elementIndex = nextElementIndex; elementIndex < elements.length; elementIndex += 1) {\n const element = elements[elementIndex] as HTMLElement;\n const elementText = element.textContent?.trim();\n\n if (!elementText || elementText !== heading.text) {\n continue;\n }\n\n if (!isHeadingLevelMatch(element, heading.level)) {\n continue;\n }\n\n elementsByHeadingId.set(heading.id, element);\n headingIdByElement.set(element, heading.id);\n nextElementIndex = elementIndex + 1;\n break;\n }\n }\n\n return { elementsByHeadingId, headingIdByElement };\n};\n\nconst DocsOutlineItem = (props: DocsOutlineItemProps) => {\n const { heading, isActive, emphasized, variant, onSelect } = props;\n const isLine = variant === \"line\";\n\n return (\n <Box\n as=\"button\"\n py=\"1.5\"\n px=\"0\"\n width=\"full\"\n display=\"flex\"\n textAlign=\"left\"\n textStyle=\"sm\"\n cursor=\"pointer\"\n textDecoration=\"none\"\n transition=\"all 0.15s ease\"\n paddingInlineStart={`calc(${heading.level} * 0.75rem)`}\n color={isActive ? \"fg\" : \"fg.muted\"}\n fontWeight={isActive || emphasized ? \"medium\" : \"normal\"}\n borderStartWidth={isLine ? \"1px\" : \"0px\"}\n borderStartColor={isLine ? (isActive ? \"fg\" : \"bg.muted\") : \"transparent\"}\n _hover={isLine ? { borderStartColor: \"bg.emphasized\" } : { color: \"fg\" }}\n onClick={() => onSelect(heading.id)}\n >\n {heading.text}\n </Box>\n );\n};\n\nexport const DocsOutline = (props: DocsOutlineProps) => {\n const { markdown, title = \"On this page\", rootMargin = \"-20% 0% -35% 0%\" } = props;\n const headings = extractHeadings(markdown);\n const env = useEnvironmentContext();\n const [activeHeadingId, setActiveHeadingId] = useState(headings[0]?.id ?? \"\");\n const [isMobileOpen, setIsMobileOpen] = useState(false);\n const headingElementsMatchRef = useRef<HeadingElementsMatch>({\n elementsByHeadingId: new Map(),\n headingIdByElement: new Map(),\n });\n\n useEffect(() => {\n const extractedHeadings = extractHeadings(markdown);\n setActiveHeadingId(extractedHeadings[0]?.id ?? \"\");\n }, [markdown]);\n\n useEffect(() => {\n const headingsForObserver = extractHeadings(markdown);\n const doc = env.getDocument();\n const win = env.getWindow();\n const nextMatch = matchHeadingElements(headingsForObserver, doc);\n\n headingElementsMatchRef.current = nextMatch;\n\n if (nextMatch.headingIdByElement.size === 0) {\n return;\n }\n\n const observer = new win.IntersectionObserver(\n (entries) => {\n const visibleEntries = entries\n .filter((entry) => entry.isIntersecting)\n .sort((first, second) => first.boundingClientRect.top - second.boundingClientRect.top);\n\n if (visibleEntries.length === 0) {\n return;\n }\n\n const target = visibleEntries[0]!.target as HTMLElement;\n const nextActiveHeadingId = nextMatch.headingIdByElement.get(target);\n\n if (nextActiveHeadingId) {\n setActiveHeadingId(nextActiveHeadingId);\n }\n },\n { rootMargin },\n );\n\n for (const element of nextMatch.headingIdByElement.keys()) {\n observer.observe(element);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [env, markdown, rootMargin]);\n\n if (headings.length === 0) {\n return null;\n }\n\n const activeHeading = headings.find((heading) => heading.id === activeHeadingId);\n\n const handleHeadingSelect = (headingId: string) => {\n const headingElement = headingElementsMatchRef.current.elementsByHeadingId.get(headingId);\n setActiveHeadingId(headingId);\n setIsMobileOpen(false);\n headingElement?.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n };\n\n return (\n <Stack gap=\"0\" width=\"full\">\n <Box hideFrom=\"md\" px=\"4\" py=\"2\" w=\"full\" bg=\"bg.subtle\" borderWidth=\"1px\">\n <Collapsible.Root open={isMobileOpen} onOpenChange={(details) => setIsMobileOpen(details.open)}>\n <Collapsible.Trigger width=\"full\" display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <HStack>\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" fontWeight=\"medium\" color=\"fg\">\n {title}\n </Text>\n {!isMobileOpen ? (\n <>\n <Icon as={ChevronRight} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" color=\"fg.muted\">\n {activeHeading?.text}\n </Text>\n </>\n ) : null}\n </HStack>\n <Box transition=\"transform 0.2s\" transform={isMobileOpen ? \"rotate(180deg)\" : \"rotate(0deg)\"}>\n <Icon as={ChevronDown} color=\"fg.subtle\" />\n </Box>\n </Collapsible.Trigger>\n\n <Collapsible.Content>\n <ScrollArea mt=\"3\" maxH=\"30vh\">\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"minimal\"\n emphasized={false}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Collapsible.Content>\n </Collapsible.Root>\n </Box>\n\n <ScrollArea hideBelow=\"md\" top=\"6\" width=\"xs\" position=\"sticky\" maxH=\"calc(100vh - 3rem)\">\n <HStack mb=\"4\">\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text fontWeight=\"medium\" textStyle=\"sm\">\n {title}\n </Text>\n </HStack>\n\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"line\"\n emphasized={heading.level === 1}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Stack>\n );\n};\n","import { Box, Button, HStack, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nexport interface DocsPaginationItem {\n href: string;\n title: string;\n description?: string;\n}\n\nexport interface DocsPaginationProps {\n previous?: DocsPaginationItem;\n next?: DocsPaginationItem;\n}\n\ninterface DocsPaginationLinkProps {\n item: DocsPaginationItem;\n direction: \"prev\" | \"next\";\n}\n\nconst DocsPaginationLink = (props: DocsPaginationLinkProps) => {\n const { item, direction } = props;\n const isPrevious = direction === \"prev\";\n const directionText = isPrevious ? \"Previous\" : \"Next\";\n\n return (\n <Button\n asChild\n variant=\"ghost\"\n colorPalette=\"gray\"\n gap=\"3\"\n size=\"sm\"\n h=\"auto\"\n py=\"2\"\n textAlign={isPrevious ? \"start\" : \"end\"}\n justifyContent={isPrevious ? \"flex-start\" : \"flex-end\"}\n flex=\"1\"\n >\n <a href={item.href}>\n {isPrevious ? <ChevronLeft size={16} /> : null}\n <Stack gap=\"0\" alignItems={isPrevious ? \"flex-start\" : \"flex-end\"}>\n <Text textStyle=\"sm\" color=\"fg.muted\" fontWeight=\"normal\">\n {directionText}\n </Text>\n <Text textStyle=\"sm\" fontWeight=\"medium\">\n {item.title}\n </Text>\n {item.description ? (\n <Text textStyle=\"xs\" color=\"fg.subtle\" fontWeight=\"normal\">\n {item.description}\n </Text>\n ) : null}\n </Stack>\n {isPrevious ? null : <ChevronRight size={16} />}\n </a>\n </Button>\n );\n};\n\nexport const DocsPagination = (props: DocsPaginationProps) => {\n const { previous, next } = props;\n\n if (!previous && !next) {\n return null;\n }\n\n return (\n <HStack justify=\"space-between\" gap=\"4\">\n <Box flex=\"1\">{previous ? <DocsPaginationLink item={previous} direction=\"prev\" /> : null}</Box>\n <Box flex=\"1\">{next ? <DocsPaginationLink item={next} direction=\"next\" /> : null}</Box>\n </HStack>\n );\n};\n","import { Box, Collapsible, Flex, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nexport interface ItemSectionProps {\n children: ReactNode;\n title?: string;\n defaultOpen?: boolean;\n action?: ReactNode;\n}\n\n/**\n * A collapsible section wrapper with a title trigger and optional action.\n */\nexport const ItemSection = (props: ItemSectionProps) => {\n const { children, title, defaultOpen = true, action } = props;\n\n return (\n <Collapsible.Root defaultOpen={defaultOpen} width=\"full\">\n <Flex>\n <Collapsible.Trigger\n _hover={{\n background: \"bg.muted\",\n }}\n borderRadius={\"xs\"}\n padding=\"sm\"\n height=\"2rem\"\n display=\"flex\"\n width=\"full\"\n gap=\"2\"\n alignItems=\"center\"\n cursor=\"pointer\"\n justifyContent=\"space-between\"\n >\n {title && (\n <Text fontWeight=\"600\" textStyle=\"label/S/medium\">\n {title}\n </Text>\n )}\n <Collapsible.Indicator transition=\"transform 0.2s\" _open={{ transform: \"rotate(90deg)\" }}>\n <ChevronRight size={16} />\n </Collapsible.Indicator>\n </Collapsible.Trigger>\n {action && (\n <Box marginLeft=\"auto\" onClick={(e) => e.stopPropagation()}>\n {action}\n </Box>\n )}\n </Flex>\n <Collapsible.Content>{children}</Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import type { IconProps } from \"@chakra-ui/react\";\nimport { Badge, MenuItem as ChakraMenuItem, Flex, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport {\n Children,\n type ComponentProps,\n cloneElement,\n isValidElement,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\ntype ChakraMenuItemProps = ComponentProps<typeof ChakraMenuItem>;\ntype MenuItemIcon = ComponentProps<typeof Icon>[\"as\"];\ntype MenuItemIconColor = IconProps[\"color\"];\ntype MenuItemTagColor = ComponentProps<typeof Badge>[\"colorPalette\"];\ntype MenuItemTagVariant = ComponentProps<typeof Badge>[\"variant\"];\ntype MenuItemVariant = \"default\" | \"compact\";\n\nconst menuItemVariantStyles = {\n default: {\n paddingX: \"sm\",\n paddingY: \"xs\",\n minHeight: \"2rem\",\n iconSize: \"19px\",\n primaryTextStyle: \"label/M/regular\",\n secondaryMarginLeft: \"2px\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n compact: {\n paddingX: \"xs\",\n paddingY: \"2xs\",\n minHeight: \"1.75rem\",\n iconSize: \"16px\",\n primaryTextStyle: \"label/S/regular\",\n secondaryMarginLeft: \"0\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n} as const;\n\ninterface MenuItemContentProps {\n primaryLabel: string;\n secondaryLabel?: string;\n tooltipLabel?: ReactNode;\n leftIcon?: MenuItemIcon | null;\n leftSlot?: ReactNode;\n rightIcon?: MenuItemIcon | null;\n leftIconColor: MenuItemIconColor;\n rightIconColor: MenuItemIconColor;\n leftIconSize: string;\n rightIconSize: string;\n rightIconAriaLabel?: string;\n rightTooltipLabel?: ReactNode;\n onRightIconClick?: () => void;\n tagLabel?: ReactNode;\n tagColorPalette: MenuItemTagColor;\n tagVariant: MenuItemTagVariant;\n variant: MenuItemVariant;\n}\n\nconst MenuItemContent = (props: MenuItemContentProps) => {\n const {\n primaryLabel,\n tooltipLabel,\n secondaryLabel,\n leftIcon,\n leftSlot,\n rightIcon,\n leftIconColor,\n rightIconColor,\n leftIconSize,\n rightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n tagLabel,\n tagColorPalette,\n tagVariant,\n variant,\n } = props;\n\n const variantStyles = menuItemVariantStyles[variant];\n const isRightIconInteractive = Boolean(onRightIconClick && rightIcon);\n\n const handleRightIconMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive) return;\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleRightIconClick = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive || !onRightIconClick) return;\n event.preventDefault();\n event.stopPropagation();\n onRightIconClick();\n };\n\n return (\n <>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap=\"xs\" flex=\"1\">\n <Tooltip positioning={{ placement: \"right\" }} content={tooltipLabel} disabled={!tooltipLabel}>\n <Stack gap=\"2xs\">\n <Flex alignItems=\"flex-start\" gap=\"xs\" flex=\"1\">\n {leftSlot ? (\n leftSlot\n ) : leftIcon ? (\n <Icon as={leftIcon} boxSize={leftIconSize} color={leftIconColor} />\n ) : null}\n <Text lineClamp={1} textOverflow=\"ellipsis\" textStyle={variantStyles.primaryTextStyle}>\n {primaryLabel}\n </Text>\n </Flex>\n {secondaryLabel && (\n <Text\n ml={variantStyles.secondaryMarginLeft}\n lineClamp={1}\n textOverflow=\"ellipsis\"\n textStyle={variantStyles.secondaryTextStyle}\n color=\"fg.menu-item.secondary\"\n >\n {secondaryLabel}\n </Text>\n )}\n </Stack>\n </Tooltip>\n <Flex justifyContent=\"flex-end\" color=\"fg.menu-item.default\">\n {rightIcon ? (\n <Tooltip positioning={{ placement: \"right\" }} content={rightTooltipLabel} disabled={!rightTooltipLabel}>\n <Flex\n as={isRightIconInteractive ? \"button\" : \"div\"}\n alignItems=\"center\"\n aria-label={rightIconAriaLabel}\n cursor={isRightIconInteractive ? \"pointer\" : \"default\"}\n bg=\"transparent\"\n borderWidth=\"0\"\n padding=\"0\"\n onMouseDown={handleRightIconMouseDown}\n onClick={handleRightIconClick}\n >\n <Icon as={rightIcon} boxSize={rightIconSize} color={rightIconColor} />\n </Flex>\n </Tooltip>\n ) : null}\n </Flex>\n </Flex>\n {tagLabel ? (\n <Badge\n position=\"absolute\"\n top=\"xs\"\n right=\"sm\"\n textStyle=\"label/XS/medium\"\n px=\"xs\"\n py=\"2px\"\n borderRadius=\"md\"\n colorPalette={tagColorPalette}\n variant={tagVariant}\n pointerEvents=\"none\"\n >\n {tagLabel}\n </Badge>\n ) : null}\n </>\n );\n};\n\nexport interface MenuItemProps {\n id?: string;\n children?: ReactNode;\n /** When true, the single child element becomes the root element (e.g. a Link for cmd+click support). */\n asChild?: boolean;\n isDisabled?: boolean;\n isSelected?: boolean;\n primaryLabel: string;\n secondaryLabel?: string;\n tooltipLabel?: ReactNode;\n leftIcon?: MenuItemIcon | null;\n leftSlot?: ReactNode;\n rightIcon?: MenuItemIcon | null;\n leftIconColor?: MenuItemIconColor;\n rightIconColor?: MenuItemIconColor;\n leftIconSize?: string;\n rightIconSize?: string;\n rightIconAriaLabel?: string;\n rightTooltipLabel?: ReactNode;\n onRightIconClick?: () => void;\n tagLabel?: ReactNode;\n tagColorPalette?: MenuItemTagColor;\n tagVariant?: MenuItemTagVariant;\n variant?: MenuItemVariant;\n tabIndex?: number;\n width?: ChakraMenuItemProps[\"width\"];\n maxWidth?: ChakraMenuItemProps[\"maxWidth\"];\n setRefElement?: ChakraMenuItemProps[\"ref\"];\n onClick?: ChakraMenuItemProps[\"onClick\"];\n onMouseDown?: ChakraMenuItemProps[\"onMouseDown\"];\n onMouseEnter?: ChakraMenuItemProps[\"onMouseEnter\"];\n}\n\nexport const MenuItem = (props: MenuItemProps) => {\n const {\n id,\n children,\n asChild,\n primaryLabel,\n tooltipLabel,\n secondaryLabel,\n leftIcon = null,\n leftSlot,\n rightIcon,\n leftIconColor = \"fg.menu-item.default\",\n rightIconColor = \"fg.menu-item.default\",\n leftIconSize,\n rightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n isDisabled,\n isSelected,\n tagLabel,\n tagColorPalette = \"yellow\",\n tagVariant = \"subtle\",\n variant = \"default\",\n tabIndex,\n width,\n maxWidth,\n setRefElement,\n } = props;\n const { onClick, onMouseDown, onMouseEnter } = props;\n const variantStyles = menuItemVariantStyles[variant];\n const backgroundColor = isSelected ? \"bg.menu-item.selected\" : \"bg.menu-item.default\";\n const resolvedLeftIconSize = leftIconSize ?? variantStyles.iconSize;\n const resolvedRightIconSize = rightIconSize ?? variantStyles.iconSize;\n\n const contentProps: MenuItemContentProps = {\n primaryLabel,\n secondaryLabel,\n tooltipLabel,\n leftIcon,\n leftSlot,\n rightIcon,\n leftIconColor,\n rightIconColor,\n leftIconSize: resolvedLeftIconSize,\n rightIconSize: resolvedRightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n tagLabel,\n tagColorPalette,\n tagVariant,\n variant,\n };\n\n const commonProps = {\n id,\n ref: setRefElement,\n tabIndex,\n disabled: isDisabled,\n \"aria-selected\": isSelected,\n paddingX: variantStyles.paddingX,\n paddingY: variantStyles.paddingY,\n height: \"auto\" as const,\n minHeight: variantStyles.minHeight,\n role: \"option\" as const,\n width,\n maxWidth: maxWidth ?? \"20rem\",\n overflow: \"hidden\" as const,\n position: \"relative\" as const,\n cursor: isDisabled ? (\"default\" as const) : (\"pointer\" as const),\n value: id ?? primaryLabel,\n bg: backgroundColor,\n _hover: { bg: \"bg.menu-item.hover\" },\n _focus: { bg: \"bg.menu-item.focus\" },\n };\n\n if (asChild && children) {\n const child = Children.only(children);\n if (!isValidElement(child)) return null;\n\n return (\n <ChakraMenuItem asChild {...commonProps}>\n {cloneElement(\n child,\n { style: { textDecoration: \"none\", color: \"inherit\" } },\n <MenuItemContent {...contentProps} />,\n )}\n </ChakraMenuItem>\n );\n }\n\n return (\n <ChakraMenuItem {...commonProps} onClick={onClick} onMouseDown={onMouseDown} onMouseEnter={onMouseEnter}>\n <MenuItemContent {...contentProps} />\n </ChakraMenuItem>\n );\n};\n","import { Flex, Stack, Text } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { ScrollArea } from \"./scroll-area\";\n\ntype PanelMenuVariant = \"default\" | \"compact\";\n\nconst panelMenuVariantStyles = {\n default: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"xs\" as const,\n contentGap: \"xs\" as const,\n },\n compact: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"2xs\" as const,\n contentGap: \"2xs\" as const,\n },\n} as const;\n\ninterface PanelMenuProps {\n title: string;\n children?: ReactNode;\n variant?: PanelMenuVariant;\n}\n\nexport function PanelMenu(props: PanelMenuProps) {\n const { title, children, variant = \"default\" } = props;\n const styles = panelMenuVariantStyles[variant];\n\n return (\n <Stack borderRightWidth=\"1px\" width={styles.width} gap=\"0\" minH=\"0\">\n {title && (\n <Flex height={styles.headerHeight} p={styles.headerPadding} borderBottomWidth=\"1px\" alignItems=\"center\">\n <Text pb=\"0\" textStyle={styles.headerTextStyle} color=\"fg.muted\">\n {title}\n </Text>\n </Flex>\n )}\n\n {children && (\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: styles.contentPadding, spaceY: styles.contentGap }}>\n {children}\n </ScrollArea>\n )}\n </Stack>\n );\n}\n","import { Menu, Text } from \"@chakra-ui/react\";\nimport { ItemSection } from \"../item-section\";\nimport { MenuItem } from \"../menu-item\";\nimport { PanelMenu } from \"../panel-menu\";\n\nexport interface DocsSidebarItem {\n text: string;\n link?: string;\n items?: DocsSidebarItem[];\n}\n\ninterface DocsSidebarEntryProps {\n item: DocsSidebarItem;\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nexport interface DocsSidebarProps {\n title: string;\n emptyMessage?: string;\n menuItems: DocsSidebarItem[];\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nconst DocsSidebarEntry = (props: DocsSidebarEntryProps) => {\n const { item, activeLink, onSelectLink, shouldStartOpen } = props;\n const children = item.items ?? [];\n const hasChildren = children.length > 0;\n\n if (!hasChildren && item.link) {\n const link = item.link;\n const isActive = item.link === activeLink;\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isSelected={isActive} variant=\"compact\" onClick={() => onSelectLink(link)} />\n </Menu.Root>\n );\n }\n\n if (!hasChildren) {\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isDisabled variant=\"compact\" />\n </Menu.Root>\n );\n }\n\n const defaultOpen = shouldStartOpen?.(item) ?? false;\n\n return (\n <ItemSection title={item.text} defaultOpen={defaultOpen}>\n {children.map((child, index) => (\n <DocsSidebarEntry\n key={`${child.text}-${child.link ?? index}`}\n item={child}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))}\n </ItemSection>\n );\n};\n\nexport const DocsSidebar = (props: DocsSidebarProps) => {\n const { title, emptyMessage, menuItems, activeLink, onSelectLink, shouldStartOpen } = props;\n\n return (\n <PanelMenu title={title} variant=\"compact\">\n {menuItems.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"xs\">\n {emptyMessage ?? \"No files found\"}\n </Text>\n ) : (\n menuItems.map((item, index) => (\n <DocsSidebarEntry\n key={`${item.text}-${item.link ?? index}`}\n item={item}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))\n )}\n </PanelMenu>\n );\n};\n","import { AbsoluteCenter, Button, Stack, Text } from \"@chakra-ui/react\";\nimport { Component, type ErrorInfo, type ReactNode } from \"react\";\n\nimport { AlertMessage } from \"./alert\";\nimport { ContentPlaceholder } from \"./content-placeholder\";\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: ReactNode;\n label?: string;\n onReset?: () => void;\n}\n\ninterface ErrorBoundaryState {\n error: Error | null;\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { error: null };\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo) {\n console.error(\"Dashboard error boundary caught an error\", error, info);\n }\n\n handleReset = () => {\n this.setState({ error: null });\n this.props.onReset?.();\n };\n\n render() {\n const { children, fallback, label } = this.props;\n const { error } = this.state;\n\n if (error) {\n if (fallback) {\n return fallback;\n }\n\n return <ErrorFallback error={error} label={label} onReset={this.handleReset} />;\n }\n\n return children;\n }\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n label?: string;\n onReset?: () => void;\n}\n\nexport const ErrorFallback = (props: ErrorFallbackProps) => {\n const { error, label, onReset } = props;\n\n return (\n <ContentPlaceholder height=\"100%\" width=\"100%\">\n <AbsoluteCenter>\n <AlertMessage\n status=\"error\"\n title={<Text textStyle=\"paragraph/M/medium\">{label ?? \"Something went wrong\"}</Text>}\n >\n <Stack gap=\"sm\">\n <Text textStyle=\"paragraph/S/regular\">\n {error.message || \"An unexpected error occurred while rendering this section.\"}\n </Text>\n {onReset ? (\n <Button size=\"sm\" variant=\"solid\" colorScheme={\"black\"} onClick={onReset}>\n Try again\n </Button>\n ) : null}\n </Stack>\n </AlertMessage>\n </AbsoluteCenter>\n </ContentPlaceholder>\n );\n};\n","import { Button, Dialog, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronUp, FileText, Folder, FolderOpen, Home } from \"lucide-react\";\nimport { MenuItem } from \"./menu-item\";\nimport { ScrollArea } from \"./scroll-area\";\n\nexport interface FolderPickerDialogEntry {\n name: string;\n path: string;\n isDirectory: boolean;\n isGitRepo: boolean;\n}\n\ninterface FolderPickerDialogProps {\n open: boolean;\n title?: string;\n description?: string;\n currentPath?: string;\n entries: FolderPickerDialogEntry[];\n selectedPath?: string | null;\n selectedPaths?: string[];\n isLoading?: boolean;\n error?: string;\n isSelectDisabled?: boolean;\n onClose: () => void;\n onSelect: () => void;\n onSelectHomeDirectory: () => void;\n onSelectParentDirectory: () => void;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n}\n\nexport type { FolderPickerDialogProps };\n\nconst getEntryIcon = (entry: FolderPickerDialogEntry) => {\n if (!entry.isDirectory) return FileText;\n if (entry.isGitRepo) return FolderOpen;\n return Folder;\n};\n\ntype FolderPickerListEntryProps = {\n entry: FolderPickerDialogEntry;\n selectedPath: string | null;\n selectedPathSet: Set<string>;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n};\n\nconst FolderPickerListEntry = (props: FolderPickerListEntryProps) => {\n const { entry, selectedPath, selectedPathSet, onEntryClick } = props;\n const isAlreadySelected = entry.isGitRepo && selectedPathSet.has(entry.path);\n const isDisabled = !entry.isDirectory || isAlreadySelected;\n\n const handleClick = () => {\n if (isAlreadySelected) {\n return;\n }\n\n onEntryClick(entry);\n };\n\n return (\n <Menu.Root>\n <MenuItem\n primaryLabel={entry.name}\n leftIcon={getEntryIcon(entry)}\n tagLabel={entry.isGitRepo ? \"Git repo\" : undefined}\n tagColorPalette={entry.isGitRepo ? \"green\" : undefined}\n isDisabled={isDisabled}\n isSelected={selectedPath === entry.path}\n width=\"100%\"\n maxWidth=\"100%\"\n onClick={handleClick}\n />\n </Menu.Root>\n );\n};\n\nexport const FolderPickerDialog = (props: FolderPickerDialogProps) => {\n const {\n open,\n title = \"Select folder\",\n description,\n currentPath = \"\",\n entries,\n selectedPath = null,\n selectedPaths = [],\n isLoading = false,\n error = \"\",\n isSelectDisabled = false,\n onClose,\n onSelect,\n onSelectHomeDirectory,\n onSelectParentDirectory,\n onEntryClick,\n } = props;\n\n const selectedPathSet = new Set(selectedPaths);\n\n return (\n <Dialog.Root closeOnInteractOutside={false} open={open} onOpenChange={(details) => !details.open && onClose()}>\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/M\">{title}</Text>\n {description ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n ) : null}\n </Stack>\n </Dialog.Header>\n <Dialog.Body>\n <Stack gap=\"md\">\n <Stack direction=\"row\" gap=\"sm\" align=\"center\">\n <Button aria-label=\"Go to home directory\" variant=\"outline\" size=\"sm\" onClick={onSelectHomeDirectory}>\n <Home size={16} />\n </Button>\n <Button\n aria-label=\"Go to parent directory\"\n variant=\"outline\"\n size=\"sm\"\n onClick={onSelectParentDirectory}\n disabled={!currentPath || currentPath === \"/\"}\n >\n <ChevronUp size={16} />\n </Button>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" flex=\"1\" lineClamp={1}>\n {currentPath || \"Home\"}\n </Text>\n </Stack>\n\n <ScrollArea\n borderWidth=\"1px\"\n borderRadius=\"md\"\n borderColor=\"border.muted\"\n maxHeight=\"320px\"\n contentProps={{ padding: \"sm\" }}\n >\n {isLoading ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n Loading...\n </Text>\n ) : error ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"red.500\">\n {error}\n </Text>\n ) : entries.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n No entries found.\n </Text>\n ) : (\n <Stack gap=\"xs\">\n {entries.map((entry) => (\n <FolderPickerListEntry\n key={entry.path}\n entry={entry}\n selectedPath={selectedPath}\n selectedPathSet={selectedPathSet}\n onEntryClick={onEntryClick}\n />\n ))}\n </Stack>\n )}\n </ScrollArea>\n </Stack>\n </Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"sm\">\n <Button variant=\"outline\" onClick={onClose}>\n Cancel\n </Button>\n <Button onClick={onSelect} disabled={isSelectDisabled}>\n Select repository\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { HStack, type StackProps } from \"@chakra-ui/react\";\n\ninterface HorizontalMenuStackProps extends StackProps {\n children?: StackProps[\"children\"];\n}\n\nexport function HorizontalMenuStack(props: HorizontalMenuStackProps) {\n const { children, ...rest } = props;\n\n return (\n <HStack {...rest} minH=\"49px\" justify=\"space-between\" align=\"center\" borderBottomWidth=\"1px\" p=\"xs\">\n {children}\n </HStack>\n );\n}\n","import { Box, HStack, Link, Separator, Stack, Text } from \"@chakra-ui/react\";\n\nexport interface OpenSourceNotice {\n name: string;\n version?: string;\n license?: string;\n copyright?: string;\n homepageUrl?: string;\n sourceUrl?: string;\n attribution?: string;\n}\n\nexport interface OpenSourceNoticesScreenProps {\n notices: OpenSourceNotice[];\n title?: string;\n description?: string;\n productName?: string;\n productVersion?: string;\n generatedAt?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n}\n\nconst getNoticeKey = (notice: OpenSourceNotice, index: number) => {\n return `${notice.name}-${notice.version ?? \"unknown\"}-${index}`;\n};\n\nconst getNoticeTitle = (notice: OpenSourceNotice) => {\n if (!notice.version) return notice.name;\n\n return `${notice.name} v${notice.version}`;\n};\n\nexport const OpenSourceNoticesScreen = (props: OpenSourceNoticesScreenProps) => {\n const {\n notices,\n title = \"Open Source and Third-Party Notices\",\n description = \"This product includes software developed by the open source community.\",\n productName,\n productVersion,\n generatedAt,\n emptyTitle = \"No third-party notices available\",\n emptyDescription = \"No third-party packages were included in this build.\",\n } = props;\n\n return (\n <Stack width=\"full\" minHeight=\"100%\" background=\"bg\" color=\"fg\" padding={{ base: \"md\", md: \"xl\" }} gap=\"lg\">\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/L\">{title}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n\n <HStack gap=\"md\" flexWrap=\"wrap\">\n {productName ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Product: {productName}\n </Text>\n ) : null}\n\n {productVersion ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Version: {productVersion}\n </Text>\n ) : null}\n\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Packages: {notices.length}\n </Text>\n\n {generatedAt ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Generated: {generatedAt}\n </Text>\n ) : null}\n </HStack>\n </Stack>\n\n <Separator borderColor=\"border.muted\" />\n\n {notices.length === 0 ? (\n <Stack borderWidth=\"1px\" borderColor=\"border.muted\" borderRadius=\"md\" padding=\"lg\" gap=\"xs\">\n <Text textStyle=\"label/L/medium\">{emptyTitle}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {emptyDescription}\n </Text>\n </Stack>\n ) : (\n <Stack gap=\"md\">\n {notices.map((notice, index) => (\n <Box\n key={getNoticeKey(notice, index)}\n borderWidth=\"1px\"\n borderColor=\"border.muted\"\n borderRadius=\"md\"\n padding=\"md\"\n >\n <Stack gap=\"sm\">\n <Stack gap=\"2xs\">\n <Text textStyle=\"label/L/medium\">{getNoticeTitle(notice)}</Text>\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n License: {notice.license ?? \"Unknown\"}\n </Text>\n </Stack>\n\n {notice.copyright ? (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n {notice.copyright}\n </Text>\n ) : null}\n\n {(notice.homepageUrl || notice.sourceUrl) && (\n <Stack gap=\"2xs\">\n {notice.homepageUrl ? (\n <Link\n href={notice.homepageUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Homepage\n </Link>\n ) : null}\n\n {notice.sourceUrl ? (\n <Link\n href={notice.sourceUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Source code\n </Link>\n ) : null}\n </Stack>\n )}\n\n {notice.attribution ? (\n <Box background=\"bg.muted\" borderRadius=\"sm\" padding=\"sm\">\n <Text textStyle=\"label/S/regular\" whiteSpace=\"pre-wrap\">\n {notice.attribution}\n </Text>\n </Box>\n ) : null}\n </Stack>\n </Box>\n ))}\n </Stack>\n )}\n </Stack>\n );\n};\n","import { Box, HStack, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport { Info } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\nexport interface PropertyItem {\n label: string;\n description?: string;\n value: ReactNode;\n}\n\nexport interface PropertiesProps {\n items: PropertyItem[];\n}\n\n/**\n * Displays a list of label–value property rows.\n *\n * Each property has a label, an optional description (shown as a tooltip), and a value (ReactNode).\n * All labels share a fixed width for alignment.\n *\n * Wrap with `<ItemSection>` when collapsible behavior is needed.\n */\nexport const Properties = (props: PropertiesProps) => {\n const { items } = props;\n\n return (\n <Stack gap=\"sm\" paddingLeft=\"sm\" paddingY=\"xs\">\n {items.map((item, index) => (\n <HStack key={`${item.label}-${index}`} gap=\"md\" alignItems=\"center\">\n <Box width=\"140px\" flexShrink={0}>\n <HStack gap=\"1\" alignItems=\"center\">\n <Text textStyle=\"label/S/medium\" color=\"fg.muted\">\n {item.label}\n </Text>\n {item.description && (\n <Tooltip content={item.description} showArrow>\n <Icon as={Info} boxSize=\"12px\" color=\"fg.muted\" opacity={0.6} cursor=\"help\" />\n </Tooltip>\n )}\n </HStack>\n </Box>\n <Box flex=\"1\">{item.value}</Box>\n </HStack>\n ))}\n </Stack>\n );\n};\n","import { Icon } from \"@chakra-ui/react\";\nimport { CircleAlert, CircleCheck, CircleDashed } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nexport type SessionCompletionStatus = \"in_progress\" | \"awaiting_input\" | \"completed\" | \"failed\";\n\nexport const resolveSessionIndicatorIcon = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return CircleCheck;\n if (status === \"failed\") return CircleAlert;\n return CircleDashed;\n};\n\nexport const resolveSessionIndicatorColor = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return \"fg.success\";\n if (status === \"failed\") return \"fg.error\";\n return \"fg.muted\";\n};\n\ninterface SessionIndicatorProps {\n status?: SessionCompletionStatus;\n boxSize?: ComponentProps<typeof Icon>[\"boxSize\"];\n ariaLabel?: string;\n cursor?: ComponentProps<typeof Icon>[\"cursor\"];\n onClick?: ComponentProps<typeof Icon>[\"onClick\"];\n}\n\nexport const SessionIndicator = (props: SessionIndicatorProps) => {\n const { status, boxSize = \"14px\", ariaLabel = \"Session status\", cursor, onClick } = props;\n\n return (\n <Icon\n as={resolveSessionIndicatorIcon(status)}\n boxSize={boxSize}\n color={resolveSessionIndicatorColor(status)}\n aria-label={ariaLabel}\n cursor={cursor}\n onClick={onClick}\n />\n );\n};\n","import { Box, HStack, IconButton, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { Tooltip } from \"../tooltip\";\nimport type {\n SidebarAction,\n SidebarLinkComponent,\n SidebarNavigateEvent,\n SidebarNode,\n SidebarSection,\n} from \"./sidebar-tree.types\";\n\ninterface SidebarTreeProps {\n sections: SidebarSection[];\n expandedSections: string[];\n expandedNodes: string[];\n activeNodeId?: string | null;\n linkComponent?: SidebarLinkComponent;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleSection: (sectionId: string) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\ninterface SidebarRowActionsProps {\n sectionId: string;\n nodeId?: string;\n actions: SidebarAction[];\n}\n\ninterface SidebarNodeRowProps {\n sectionId: string;\n node: SidebarNode;\n level: number;\n expandedNodes: string[];\n activeNodeId?: string | null;\n linkComponent?: SidebarLinkComponent;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\nconst isExpanded = (id: string, values: string[]) => values.includes(id);\n\nconst SidebarActionButton = (props: { action: SidebarAction; sectionId: string; nodeId?: string }) => {\n const { action, sectionId, nodeId } = props;\n\n if (action.menuItems && action.menuItems.length > 0) {\n return (\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 <Menu.Positioner>\n <Menu.Content minW=\"160px\" bg=\"bg\">\n {action.menuItems.map((item) => (\n <Tooltip key={item.id} content={item.description} disabled={!item.description} openDelay={300}>\n <Menu.Item value={item.id} onClick={() => item.onAction?.()}>\n {item.icon ? <Box mr=\"2\">{item.icon}</Box> : null}\n {item.label}\n </Menu.Item>\n </Tooltip>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n );\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n size=\"2xs\"\n aria-label={action.label}\n onClick={(event) => {\n event.stopPropagation();\n action.onAction?.({ sectionId, nodeId });\n }}\n >\n {action.icon}\n </IconButton>\n );\n};\n\nconst SidebarRowActions = (props: SidebarRowActionsProps) => {\n const { sectionId, nodeId, actions } = props;\n\n if (actions.length === 0) return null;\n\n return (\n <HStack\n gap=\"0\"\n opacity=\"0\"\n pointerEvents=\"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 <SidebarActionButton key={action.id} action={action} sectionId={sectionId} nodeId={nodeId} />\n ))}\n </HStack>\n );\n};\n\nconst SidebarNodeRow = (props: SidebarNodeRowProps) => {\n const {\n sectionId,\n node,\n level,\n expandedNodes,\n activeNodeId,\n linkComponent: LinkComponent,\n onNavigate,\n onToggleNode,\n } = props;\n const hasChildren = (node.children?.length ?? 0) > 0;\n const expanded = hasChildren && isExpanded(node.id, expandedNodes);\n const isNavigable = node.isNavigable || node.navigationIntent !== undefined;\n const isActive = activeNodeId === node.id;\n const isDisabled = node.disabled === true;\n const paddingLeft = level > 0 ? `calc(var(--chakra-spacing-1) + ${level} * var(--chakra-spacing-3))` : undefined;\n const canLink = Boolean(LinkComponent && node.href && isNavigable && !hasChildren && !isDisabled);\n\n const handleClick = () => {\n if (isDisabled) return;\n\n if (hasChildren) {\n onToggleNode(node.id);\n return;\n }\n\n if (!isNavigable) return;\n\n onNavigate?.({\n sectionId,\n nodeId: node.id,\n node,\n intent: node.navigationIntent,\n });\n };\n\n const rowContent = (\n <HStack gap=\"2\" minW=\"0\" flex=\"1\" overflow=\"hidden\">\n {node.icon ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n {node.icon}\n </Box>\n ) : null}\n <Stack gap=\"0\" minW=\"0\" flex=\"1\">\n <HStack gap=\"1\" minW=\"0\">\n <Text textStyle=\"paragraph/S/regular\" color={isDisabled ? \"fg.muted\" : \"fg\"} truncate>\n {node.label}\n </Text>\n {hasChildren ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: expanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n ) : null}\n </HStack>\n {node.description ? (\n <Text textStyle=\"paragraph/XS/regular\" color=\"fg.muted\" truncate>\n {node.description}\n </Text>\n ) : null}\n </Stack>\n </HStack>\n );\n\n const rowStyles = {\n className: \"group\",\n role: \"option\" as const,\n \"aria-selected\": isActive,\n justify: \"space-between\" as const,\n align: \"center\" as const,\n borderRadius: \"xs\",\n px: \"1\",\n py: \"2xs\",\n pl: paddingLeft,\n bg: isActive ? \"bg.muted\" : \"transparent\",\n _hover: { bg: isActive ? \"bg.muted\" : \"bg.subtle\" },\n cursor: isDisabled ? (\"default\" as const) : (\"pointer\" as const),\n overflow: \"hidden\" as const,\n };\n\n return (\n <Stack gap={!node.children ? \"2xs\" : \"0\"}>\n {canLink && LinkComponent && node.href ? (\n <LinkComponent to={node.href}>\n <HStack {...rowStyles} onClick={handleClick}>\n {rowContent}\n <SidebarRowActions sectionId={sectionId} nodeId={node.id} actions={node.actions ?? []} />\n </HStack>\n </LinkComponent>\n ) : (\n <HStack {...rowStyles} onClick={handleClick}>\n {rowContent}\n <SidebarRowActions sectionId={sectionId} nodeId={node.id} actions={node.actions ?? []} />\n </HStack>\n )}\n\n {expanded\n ? node.children?.map((childNode) => (\n <SidebarNodeRow\n key={childNode.id}\n sectionId={sectionId}\n node={childNode}\n level={level + 1}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n linkComponent={LinkComponent}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : null}\n </Stack>\n );\n};\n\nexport const SidebarTree = (props: SidebarTreeProps) => {\n const {\n sections,\n expandedSections,\n expandedNodes,\n activeNodeId,\n linkComponent,\n onNavigate,\n onToggleSection,\n onToggleNode,\n } = props;\n\n return (\n <Stack role=\"listbox\" gap=\"md\" p=\"md\">\n {sections.map((section) => {\n const sectionExpanded = section.label ? isExpanded(section.id, expandedSections) : true;\n\n return (\n <Stack key={section.id} gap=\"0\">\n {section.label ? (\n <HStack\n className=\"group\"\n justify=\"space-between\"\n align=\"center\"\n px=\"1\"\n py=\"2xs\"\n minH=\"7\"\n cursor=\"pointer\"\n borderRadius=\"xs\"\n _hover={{ bg: \"bg.subtle\" }}\n onClick={() => onToggleSection(section.id)}\n >\n <HStack gap=\"1\" flex=\"1\" minW=\"0\">\n <Text textStyle=\"label/XS\" textTransform=\"uppercase\" color=\"fg.muted\" letterSpacing=\"0.08em\" truncate>\n {section.label}\n </Text>\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: sectionExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n </HStack>\n <SidebarRowActions sectionId={section.id} actions={section.actions ?? []} />\n </HStack>\n ) : null}\n\n {sectionExpanded\n ? section.nodes.length > 0\n ? section.nodes.map((node) => (\n <SidebarNodeRow\n key={node.id}\n sectionId={section.id}\n node={node}\n level={0}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n linkComponent={linkComponent}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : (section.emptyState ?? null)\n : null}\n </Stack>\n );\n })}\n </Stack>\n );\n};\n","import { useStore } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\ninterface SidebarNextSnapshot {\n open: boolean;\n expandedSections: string[];\n expandedNodes: string[];\n}\n\ninterface SidebarNextState extends SidebarNextSnapshot {\n openSidebar: () => void;\n closeSidebar: () => void;\n toggleSidebar: () => void;\n toggleSection: (sectionId: string) => void;\n toggleNode: (nodeId: string) => void;\n setSectionExpanded: (sectionId: string, expanded: boolean) => void;\n setNodeExpanded: (nodeId: string, expanded: boolean) => void;\n reset: () => void;\n}\n\ninterface CreateSidebarNextStoreOptions {\n storageKey: string;\n initialState?: Partial<SidebarNextSnapshot>;\n}\n\nconst DEFAULT_SNAPSHOT = {\n open: true,\n expandedSections: [],\n expandedNodes: [],\n} satisfies SidebarNextSnapshot;\n\nconst SIDEBAR_STORE_NAMESPACE = \"pstdio/ui/sidebar-next\";\n\nconst toStorageName = (storageKey: string) => `${SIDEBAR_STORE_NAMESPACE}/${storageKey}`;\n\nconst createNoopStorage = () => ({\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n});\n\nconst toggleId = (values: string[], id: string) =>\n values.includes(id) ? values.filter((value) => value !== id) : [...values, id];\n\nconst setExpanded = (values: string[], id: string, expanded: boolean) => {\n if (expanded) {\n return values.includes(id) ? values : [...values, id];\n }\n\n return values.filter((value) => value !== id);\n};\n\nconst getPersistedSnapshot = (state: SidebarNextState) => ({\n open: state.open,\n expandedSections: state.expandedSections,\n expandedNodes: state.expandedNodes,\n});\n\nexport const createSidebarNextStore = (options: CreateSidebarNextStoreOptions) => {\n const { storageKey, initialState } = options;\n const snapshot = { ...DEFAULT_SNAPSHOT, ...initialState };\n\n return createStore<SidebarNextState>()(\n persist(\n (set) => ({\n ...snapshot,\n openSidebar: () => set((state) => ({ ...state, open: true })),\n closeSidebar: () => set((state) => ({ ...state, open: false })),\n toggleSidebar: () => set((state) => ({ ...state, open: !state.open })),\n toggleSection: (sectionId) =>\n set((state) => ({\n ...state,\n expandedSections: toggleId(state.expandedSections, sectionId),\n })),\n toggleNode: (nodeId) =>\n set((state) => ({\n ...state,\n expandedNodes: toggleId(state.expandedNodes, nodeId),\n })),\n setSectionExpanded: (sectionId, expanded) =>\n set((state) => ({\n ...state,\n expandedSections: setExpanded(state.expandedSections, sectionId, expanded),\n })),\n setNodeExpanded: (nodeId, expanded) =>\n set((state) => ({\n ...state,\n expandedNodes: setExpanded(state.expandedNodes, nodeId, expanded),\n })),\n reset: () => set(DEFAULT_SNAPSHOT),\n }),\n {\n name: toStorageName(storageKey),\n storage: createJSONStorage(() => {\n if (typeof globalThis.localStorage === \"undefined\") {\n return createNoopStorage();\n }\n\n return globalThis.localStorage;\n }),\n partialize: getPersistedSnapshot,\n },\n ),\n );\n};\n\nconst sidebarStoreRegistry = new Map<string, ReturnType<typeof createSidebarNextStore>>();\n\nexport const getSidebarNextStore = (storageKey: string) => {\n const existingStore = sidebarStoreRegistry.get(storageKey);\n\n if (existingStore) {\n return existingStore;\n }\n\n const store = createSidebarNextStore({ storageKey });\n sidebarStoreRegistry.set(storageKey, store);\n\n return store;\n};\n\nexport const useSidebarNextStore = <T>(storageKey: string, selector: (state: SidebarNextState) => T) => {\n const store = getSidebarNextStore(storageKey);\n return useStore(store, selector);\n};\n","import { Box } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextFooterProps {\n children?: ReactNode;\n}\n\nexport const SidebarNextFooter = (props: SidebarNextFooterProps) => {\n const { children } = props;\n\n if (!children) {\n return null;\n }\n\n return (\n <Box px=\"2\" py=\"2\" bg=\"bg\" position=\"sticky\" bottom=\"0\" overflow=\"hidden\">\n {children}\n </Box>\n );\n};\n","import { HStack, IconButton } from \"@chakra-ui/react\";\nimport { PanelLeftClose } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextHeaderProps {\n children?: ReactNode;\n onClose?: () => void;\n}\n\nexport const SidebarNextHeader = (props: SidebarNextHeaderProps) => {\n const { children, onClose } = props;\n\n return (\n <HStack justify=\"space-between\" align=\"center\" px=\"4\" py=\"3\" bg=\"bg\" position=\"sticky\" top=\"0\" zIndex=\"1\">\n <HStack minW=\"0\" flex=\"1\">\n {children}\n </HStack>\n {onClose ? (\n <IconButton variant=\"ghost\" size=\"sm\" aria-label=\"Hide sidebar\" onClick={onClose}>\n <PanelLeftClose size={16} />\n </IconButton>\n ) : null}\n </HStack>\n );\n};\n","import { Flex, Text } from \"@chakra-ui/react\";\nimport { useEffect } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SidebarTree } from \"../sidebar-tree/sidebar-tree\";\nimport { useSidebarNextStore } from \"./sidebar-next.store\";\nimport type { SidebarNextProps } from \"./sidebar-next.types\";\nimport { SidebarNextFooter } from \"./sidebar-next-footer\";\nimport { SidebarNextHeader } from \"./sidebar-next-header\";\n\nexport const SidebarNext = (props: SidebarNextProps) => {\n const {\n storageKey,\n sections,\n activeNodeId,\n header,\n footer,\n width = \"240px\",\n closable = true,\n emptyLabel = \"No items available.\",\n linkComponent,\n onNavigate,\n onOpenChange,\n } = props;\n\n const open = useSidebarNextStore(storageKey, (state) => state.open);\n const expandedSections = useSidebarNextStore(storageKey, (state) => state.expandedSections);\n const expandedNodes = useSidebarNextStore(storageKey, (state) => state.expandedNodes);\n const closeSidebar = useSidebarNextStore(storageKey, (state) => state.closeSidebar);\n const toggleSection = useSidebarNextStore(storageKey, (state) => state.toggleSection);\n const toggleNode = useSidebarNextStore(storageKey, (state) => state.toggleNode);\n\n useEffect(() => {\n onOpenChange?.(open);\n }, [onOpenChange, open]);\n\n if (!open && closable) {\n return null;\n }\n\n return (\n <Flex\n as=\"aside\"\n direction=\"column\"\n h=\"100%\"\n w={width}\n minW={width}\n maxW={width}\n borderRightWidth=\"1px\"\n borderRightColor=\"border.muted\"\n bg=\"bg\"\n >\n <SidebarNextHeader onClose={closable ? closeSidebar : undefined}>{header}</SidebarNextHeader>\n\n <ScrollArea flex=\"1\">\n {sections.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"3\">\n {emptyLabel}\n </Text>\n ) : (\n <SidebarTree\n sections={sections}\n expandedSections={expandedSections}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n linkComponent={linkComponent}\n onNavigate={onNavigate}\n onToggleSection={toggleSection}\n onToggleNode={toggleNode}\n />\n )}\n </ScrollArea>\n\n <SidebarNextFooter>{footer}</SidebarNextFooter>\n </Flex>\n );\n};\n","import { Switch as ChakraSwitch } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface SwitchProps extends ChakraSwitch.RootProps {\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n trackLabel?: { on: React.ReactNode; off: React.ReactNode };\n thumbLabel?: { on: React.ReactNode; off: React.ReactNode };\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(function Switch(props, ref) {\n const { inputProps, children, rootRef, trackLabel, thumbLabel, disabled = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraSwitch.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraSwitch.HiddenInput ref={ref} {...inputProps} />\n <ChakraSwitch.Control borderRadius=\"md\" cursor={interactiveCursor}>\n <ChakraSwitch.Thumb borderRadius=\"full\">\n {thumbLabel && (\n <ChakraSwitch.ThumbIndicator fallback={thumbLabel?.off}>{thumbLabel?.on}</ChakraSwitch.ThumbIndicator>\n )}\n </ChakraSwitch.Thumb>\n {trackLabel && <ChakraSwitch.Indicator fallback={trackLabel.off}>{trackLabel.on}</ChakraSwitch.Indicator>}\n </ChakraSwitch.Control>\n {children != null && <ChakraSwitch.Label cursor={interactiveCursor}>{children}</ChakraSwitch.Label>}\n </ChakraSwitch.Root>\n );\n});\n","import {\n Button,\n HStack,\n Icon,\n IconButton,\n Menu,\n Popover,\n Portal,\n SegmentGroup,\n Separator,\n Stack,\n Text,\n} from \"@chakra-ui/react\";\nimport { ArrowDownUp, ChevronDown, KanbanSquare, List, Settings2 } from \"lucide-react\";\n\nimport type { DisplayProperty, GroupingField, OrderingField, WorkspaceOption, WorkspaceSettings } from \"./types\";\n\ninterface DisplayMenuProps {\n settings: WorkspaceSettings;\n groupingOptions: WorkspaceOption<GroupingField>[];\n orderingOptions: WorkspaceOption<OrderingField>[];\n displayPropertyOptions: WorkspaceOption<DisplayProperty>[];\n onViewModeChange: (value: WorkspaceSettings[\"viewMode\"]) => void;\n onColumnGroupingChange: (value: GroupingField) => void;\n onRowGroupingChange: (value: GroupingField) => void;\n onOrderingFieldChange: (value: OrderingField) => void;\n onSortDirectionToggle: () => void;\n onDisplayPropertyToggle: (property: DisplayProperty) => void;\n}\n\nconst SectionLabel = (props: { children: string }) => (\n <Text textStyle=\"label/XS/medium\" color=\"fg.muted\">\n {props.children}\n </Text>\n);\n\nconst Dropdown = <T extends string>(props: {\n label: string;\n value: T;\n options: WorkspaceOption<T>[];\n onSelect: (value: T) => void;\n}) => {\n const selectedLabel = props.options.find((option) => option.value === props.value)?.label ?? props.label;\n\n return (\n <Stack gap=\"2xs\">\n <SectionLabel>{props.label}</SectionLabel>\n <Menu.Root>\n <Menu.Trigger asChild>\n <Button size=\"sm\" variant=\"outline\" width=\"full\" justifyContent=\"space-between\">\n {selectedLabel}\n <Icon as={ChevronDown} color=\"fg.muted\" />\n </Button>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"260px\" bg=\"bg\">\n {props.options.map((option) => (\n <Menu.Item key={option.value} value={option.value} onClick={() => props.onSelect(option.value)}>\n <Text textStyle=\"label/S/regular\">{option.label}</Text>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n </Stack>\n );\n};\n\nexport const DisplayMenu = (props: DisplayMenuProps) => {\n const {\n settings,\n groupingOptions,\n orderingOptions,\n displayPropertyOptions,\n onViewModeChange,\n onColumnGroupingChange,\n onRowGroupingChange,\n onOrderingFieldChange,\n onSortDirectionToggle,\n onDisplayPropertyToggle,\n } = props;\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-end\", offset: { mainAxis: 8 } }}>\n <Popover.Trigger asChild>\n <IconButton aria-label=\"Display settings\" variant=\"ghost\" size=\"sm\">\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"320px\" p=\"sm\" bg=\"bg\">\n <Stack gap=\"sm\">\n <SectionLabel>View</SectionLabel>\n <SegmentGroup.Root\n size=\"sm\"\n value={settings.viewMode}\n onValueChange={(event) => {\n if (!event.value) return;\n onViewModeChange(event.value as WorkspaceSettings[\"viewMode\"]);\n }}\n >\n <SegmentGroup.Indicator />\n <SegmentGroup.Item value=\"list\">\n <SegmentGroup.ItemText>\n <HStack as=\"span\" gap=\"2xs\">\n <List size={14} />\n <span>List</span>\n </HStack>\n </SegmentGroup.ItemText>\n <SegmentGroup.ItemHiddenInput />\n </SegmentGroup.Item>\n <SegmentGroup.Item value=\"board\">\n <SegmentGroup.ItemText>\n <HStack as=\"span\" gap=\"2xs\">\n <KanbanSquare size={14} />\n <span>Board</span>\n </HStack>\n </SegmentGroup.ItemText>\n <SegmentGroup.ItemHiddenInput />\n </SegmentGroup.Item>\n </SegmentGroup.Root>\n\n <Separator />\n\n <Dropdown\n label=\"Grouping\"\n value={settings.columnGrouping}\n options={groupingOptions}\n onSelect={(value) => {\n onColumnGroupingChange(value);\n if (value === \"none\" || value === settings.rowGrouping) {\n onRowGroupingChange(\"none\");\n }\n }}\n />\n\n <Dropdown\n label=\"Sub-grouping\"\n value={settings.rowGrouping}\n options={groupingOptions.filter((o) => o.value === \"none\" || o.value !== settings.columnGrouping)}\n onSelect={onRowGroupingChange}\n />\n\n <Stack gap=\"2xs\">\n <SectionLabel>Ordering</SectionLabel>\n <HStack gap=\"2xs\">\n <Dropdown\n label=\"Sort by\"\n value={settings.ordering.field}\n options={orderingOptions}\n onSelect={onOrderingFieldChange}\n />\n <IconButton\n mt=\"lg\"\n aria-label=\"Toggle sort direction\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onSortDirectionToggle}\n data-direction={settings.ordering.direction}\n >\n <Icon\n as={ArrowDownUp}\n transform={settings.ordering.direction === \"asc\" ? \"rotate(0deg)\" : \"rotate(180deg)\"}\n />\n </IconButton>\n </HStack>\n </Stack>\n\n <Separator />\n <Stack gap=\"2xs\">\n <SectionLabel>Display properties</SectionLabel>\n <HStack flexWrap=\"wrap\" gap=\"2xs\">\n {displayPropertyOptions.map((option) => {\n const isActive = settings.displayProperties.includes(option.value);\n\n return (\n <Button\n key={option.value}\n size=\"2xs\"\n variant={isActive ? \"solid\" : \"outline\"}\n onClick={() => onDisplayPropertyToggle(option.value)}\n >\n {option.label}\n </Button>\n );\n })}\n </HStack>\n </Stack>\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Badge, Box, Button, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { Filter } from \"lucide-react\";\nimport { useState } from \"react\";\n\nimport { Checkbox } from \"@/components/checkbox\";\n\nimport type { FilterState, WorkspaceFilterCategory } from \"./types\";\n\ninterface FilterMenuProps {\n categories: WorkspaceFilterCategory[];\n filters: FilterState;\n countsByCategory: Record<string, Record<string, number>>;\n onToggleFilterValue: (category: WorkspaceFilterCategory[\"id\"], value: string) => void;\n onClearFilter: (category: WorkspaceFilterCategory[\"id\"]) => void;\n onClearAll: () => void;\n}\n\nconst getActiveFilterCount = (filters: FilterState) =>\n Object.values(filters).reduce((sum, values) => sum + (values?.length ?? 0), 0);\n\nexport const FilterMenu = (props: FilterMenuProps) => {\n const { categories, filters, countsByCategory, onToggleFilterValue, onClearFilter, onClearAll } = props;\n const [activeCategoryId, setActiveCategoryId] = useState<WorkspaceFilterCategory[\"id\"]>(\n categories[0]?.id ?? \"status\",\n );\n\n const activeCategory = categories.find((category) => category.id === activeCategoryId) ?? categories[0];\n\n const activeFilterCount = getActiveFilterCount(filters);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-end\", offset: { mainAxis: 8 } }}>\n <Popover.Trigger asChild>\n <IconButton aria-label=\"Filter tickets\" variant={activeFilterCount > 0 ? \"outline\" : \"ghost\"} size=\"sm\">\n <HStack gap=\"2xs\">\n <Icon as={Filter} boxSize=\"14px\" />\n {activeFilterCount > 0 ? <Badge variant=\"solid\">{activeFilterCount}</Badge> : null}\n </HStack>\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"560px\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <HStack align=\"stretch\" gap=\"0\" minH=\"320px\">\n <Stack width=\"220px\" borderRightWidth=\"1px\" borderColor=\"border.muted\" p=\"sm\" gap=\"2xs\">\n <HStack justifyContent=\"space-between\">\n <Text textStyle=\"label/XS/medium\" color=\"fg.muted\">\n Filters\n </Text>\n <Button size=\"2xs\" variant=\"ghost\" onClick={onClearAll}>\n Clear all\n </Button>\n </HStack>\n {categories.map((category) => {\n const selectedValues = filters[category.id] ?? [];\n return (\n <Button\n key={category.id}\n variant={activeCategoryId === category.id ? \"subtle\" : \"ghost\"}\n size=\"sm\"\n justifyContent=\"space-between\"\n onClick={() => setActiveCategoryId(category.id)}\n >\n <Text>{category.label}</Text>\n {selectedValues.length > 0 ? <Badge variant=\"subtle\">{selectedValues.length}</Badge> : null}\n </Button>\n );\n })}\n </Stack>\n\n <Stack flex=\"1\" p=\"sm\" gap=\"sm\">\n {activeCategory ? (\n <>\n <HStack justifyContent=\"space-between\">\n <Text textStyle=\"label/S/medium\">{activeCategory.label}</Text>\n <Button size=\"2xs\" variant=\"ghost\" onClick={() => onClearFilter(activeCategory.id)}>\n Clear\n </Button>\n </HStack>\n <Stack gap=\"2xs\">\n {activeCategory.options.map((option) => {\n const checked = (filters[activeCategory.id] ?? []).includes(option.value);\n const count = countsByCategory[activeCategory.id]?.[option.value] ?? 0;\n\n return (\n <Box key={option.value} px=\"xs\" py=\"2xs\" borderRadius=\"sm\" _hover={{ bg: \"bg.subtle\" }}>\n <Checkbox\n checked={checked}\n onCheckedChange={() => onToggleFilterValue(activeCategory.id, option.value)}\n >\n <HStack gap=\"2xs\" justifyContent=\"space-between\" width=\"full\">\n <Text textStyle=\"label/S/regular\">{option.label}</Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {count}\n </Text>\n </HStack>\n </Checkbox>\n </Box>\n );\n })}\n </Stack>\n </>\n ) : null}\n </Stack>\n </HStack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Badge, HStack, Stack, Text, Wrap } from \"@chakra-ui/react\";\nimport { GitBranchIcon } from \"lucide-react\";\nimport type { DragEventHandler, MouseEvent } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { Tooltip } from \"@/components/tooltip\";\nimport { type SessionCompletionStatus, SessionIndicator } from \"../session-indicator\";\n\nexport interface TicketCardBadge {\n label: string;\n color?: string;\n}\n\ninterface TicketCardProps {\n ticketId: string;\n parentPath?: string[];\n sessionIndicatorLabel?: string;\n sessionIndicatorStatus?: SessionCompletionStatus;\n title: string;\n badges?: TicketCardBadge[];\n diffAdditions?: number;\n diffDeletions?: number;\n isSelected?: boolean;\n draggable?: boolean;\n onDragStart?: DragEventHandler<HTMLDivElement>;\n onDragEnd?: DragEventHandler<HTMLDivElement>;\n onClick?: () => void;\n onDiffBadgeClick?: () => void;\n onSessionIndicatorClick?: () => void;\n}\n\nexport const TicketCard = (props: TicketCardProps) => {\n const {\n ticketId,\n parentPath = [],\n sessionIndicatorLabel,\n sessionIndicatorStatus,\n title,\n badges = [],\n diffAdditions,\n diffDeletions,\n isSelected = false,\n draggable,\n onDragStart,\n onDragEnd,\n onClick,\n onDiffBadgeClick,\n onSessionIndicatorClick,\n } = props;\n\n const handleDiffBadgeClick = (event: MouseEvent<HTMLSpanElement>) => {\n event.stopPropagation();\n onDiffBadgeClick?.();\n };\n\n const handleSessionIndicatorClick = (event: MouseEvent<SVGSVGElement>) => {\n event.stopPropagation();\n onSessionIndicatorClick?.();\n };\n\n return (\n <Stack\n gap=\"xs\"\n padding=\"sm\"\n borderRadius=\"sm\"\n borderWidth=\"1px\"\n width=\"calc(100% - 8px)\"\n alignSelf=\"center\"\n background=\"bg\"\n transition=\"box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out\"\n _hover={{\n borderColor: \"border.blue\",\n boxShadow: \"mid\",\n }}\n cursor={draggable ? \"grab\" : onClick ? \"pointer\" : \"default\"}\n draggable={draggable}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onClick={onClick}\n data-selected={isSelected ? \"true\" : undefined}\n >\n <HStack justifyContent={\"space-between\"} gap=\"2xs\" flexWrap=\"wrap\">\n <HStack gap=\"2xs\" flexShrink={0}>\n <Text textStyle=\"label/S/regular\" flexShrink={0}>\n {parentPath.length > 0 && (\n <Text as=\"span\" color=\"subtle\">\n {parentPath.join(\" / \")} /{\" \"}\n </Text>\n )}\n {ticketId}\n </Text>\n {sessionIndicatorLabel ? (\n <Tooltip content={`Session ${sessionIndicatorLabel}`}>\n <SessionIndicator\n status={sessionIndicatorStatus}\n boxSize=\"12px\"\n aria-label={`Session ${sessionIndicatorLabel}`}\n cursor={onSessionIndicatorClick ? \"pointer\" : \"default\"}\n onClick={onSessionIndicatorClick ? handleSessionIndicatorClick : undefined}\n />\n </Tooltip>\n ) : null}\n </HStack>\n {typeof diffAdditions === \"number\" && typeof diffDeletions === \"number\" ? (\n <DiffBubble\n additions={diffAdditions}\n deletions={diffDeletions}\n variant=\"ghost\"\n size=\"small\"\n label={<GitBranchIcon size=\"12\" />}\n onClick={handleDiffBadgeClick}\n data-testid=\"ticket-diff-badge\"\n />\n ) : null}\n </HStack>\n\n <HStack align=\"start\" gap=\"2xs\" flexWrap=\"wrap\">\n <Text textStyle=\"label/S/regular\" flex=\"1\" minW=\"0\">\n {title}\n </Text>\n </HStack>\n\n {badges.length > 0 && (\n <Wrap gap=\"2xs\">\n {badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n </Stack>\n );\n};\n","import { Badge, Box, HStack, Icon, IconButton, Menu, Spacer, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronRight, MoreHorizontal, Plus } from \"lucide-react\";\nimport { type ComponentProps, type ComponentType, type DragEvent, useState } from \"react\";\n\nimport { MenuItem } from \"@/components/menu-item\";\nimport { ScrollArea } from \"@/components/scroll-area\";\nimport { Tooltip } from \"@/components/tooltip\";\n\nimport { TicketCard } from \"./ticket-card\";\n\ntype TicketCardProps = ComponentProps<typeof TicketCard>;\n\nexport interface TicketBoardItem {\n id: string;\n cardProps: Omit<TicketCardProps, \"draggable\" | \"onDragStart\" | \"onDragEnd\" | \"isSelected\">;\n}\n\nexport interface TicketBoardColumnAction {\n id: string;\n label: string;\n icon: ComponentType<{ size?: number | string }>;\n}\n\nexport interface TicketBoardGroup {\n key: string;\n label: string;\n items: TicketBoardItem[];\n}\n\nexport interface TicketBoardColumn {\n id: string;\n label: string;\n color?: string;\n items: TicketBoardItem[];\n groups?: TicketBoardGroup[];\n canDragIn: boolean;\n canDragOut: boolean;\n canCreate: boolean;\n actions: TicketBoardColumnAction[];\n}\n\ninterface TicketBoardProps {\n columns: TicketBoardColumn[];\n selectedItemId?: string | null;\n onMoveItem?: (itemId: string, targetColumnId: string) => void;\n onMoveToGroup?: (itemId: string, targetGroupKey: string) => void;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\nexport const TicketBoard = (props: TicketBoardProps) => {\n const { columns, selectedItemId = null, onMoveItem, onMoveToGroup, onCreateStart, onColumnAction } = props;\n\n const [activeColumn, setActiveColumn] = useState<string | null>(null);\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n\n const handleDragStart = (itemId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.dataTransfer.setData(\"text/plain\", itemId);\n event.dataTransfer.effectAllowed = \"move\";\n };\n\n const handleDragEnd = () => {\n setActiveColumn(null);\n setActiveGroup(null);\n };\n\n const handleDragOver = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setActiveColumn(columnId);\n };\n\n const handleDragLeave = (event: DragEvent<HTMLDivElement>) => {\n if (event.currentTarget.contains(event.relatedTarget as Node)) return;\n setActiveColumn(null);\n };\n\n const handleDrop = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setActiveColumn(null);\n\n const itemId = event.dataTransfer.getData(\"text/plain\");\n if (!itemId) return;\n\n onMoveItem?.(itemId, columnId);\n };\n\n return (\n <ScrollArea\n height=\"100%\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ display: \"flex\", alignItems: \"stretch\", gap: \"0\", pb: \"2xs\", minH: \"100%\" }}\n >\n {columns.map((column) => (\n <Stack\n key={column.id}\n data-testid={`board-column-${column.id}`}\n gap=\"xs\"\n _notFirst={{ borderLeft: \"1px solid\", borderColor: \"border\" }}\n background={activeColumn === column.id ? \"bg.subtle\" : \"bg\"}\n transition=\"background 150ms ease\"\n height=\"100%\"\n minH=\"240px\"\n overflow=\"hidden\"\n minW=\"260px\"\n flex=\"1 0 260px\"\n onDragOver={column.canDragIn ? handleDragOver(column.id) : undefined}\n onDragLeave={column.canDragIn ? handleDragLeave : undefined}\n onDrop={column.canDragIn ? handleDrop(column.id) : undefined}\n >\n <ColumnHeader column={column} onCreateStart={onCreateStart} onColumnAction={onColumnAction} />\n\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ spaceY: \"sm\" }}>\n {column.groups && column.groups.length > 0\n ? column.groups.map((group) => {\n const groupId = `${column.id}::${group.key}`;\n return (\n <GroupSection\n key={group.key}\n group={group}\n selectedItemId={selectedItemId}\n canDragIn={column.canDragIn}\n canDragOut={column.canDragOut}\n isDropTarget={activeGroup === groupId}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onGroupDragOver={(event) => {\n event.preventDefault();\n event.stopPropagation();\n event.dataTransfer.dropEffect = \"move\";\n setActiveGroup(groupId);\n setActiveColumn(null);\n }}\n onGroupDragLeave={(event) => {\n if (event.currentTarget.contains(event.relatedTarget as Node)) return;\n setActiveGroup(null);\n }}\n onGroupDrop={(event) => {\n event.preventDefault();\n event.stopPropagation();\n setActiveGroup(null);\n setActiveColumn(null);\n const itemId = event.dataTransfer.getData(\"text/plain\");\n if (!itemId) return;\n onMoveItem?.(itemId, column.id);\n onMoveToGroup?.(itemId, group.key);\n }}\n />\n );\n })\n : column.items.map((item) => (\n <TicketCard\n key={item.id}\n {...item.cardProps}\n isSelected={item.id === selectedItemId}\n draggable={column.canDragOut}\n onDragStart={column.canDragOut ? handleDragStart(item.id) : undefined}\n onDragEnd={column.canDragOut ? handleDragEnd : undefined}\n />\n ))}\n </ScrollArea>\n </Stack>\n ))}\n </ScrollArea>\n );\n};\n\ninterface ColumnHeaderProps {\n column: TicketBoardColumn;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\ninterface GroupSectionProps {\n group: TicketBoardGroup;\n selectedItemId: string | null;\n canDragIn: boolean;\n canDragOut: boolean;\n isDropTarget: boolean;\n onDragStart: (itemId: string) => (event: DragEvent<HTMLDivElement>) => void;\n onDragEnd: () => void;\n onGroupDragOver: (event: DragEvent<HTMLDivElement>) => void;\n onGroupDragLeave: (event: DragEvent<HTMLDivElement>) => void;\n onGroupDrop: (event: DragEvent<HTMLDivElement>) => void;\n}\n\nconst GroupSection = (props: GroupSectionProps) => {\n const {\n group,\n selectedItemId,\n canDragIn,\n canDragOut,\n isDropTarget,\n onDragStart,\n onDragEnd,\n onGroupDragOver,\n onGroupDragLeave,\n onGroupDrop,\n } = props;\n const [expanded, setExpanded] = useState(true);\n\n return (\n <Stack\n gap=\"0\"\n borderRadius=\"sm\"\n background={isDropTarget ? \"bg.subtle\" : \"transparent\"}\n transition=\"background 150ms ease\"\n onDragOver={canDragIn ? onGroupDragOver : undefined}\n onDragLeave={canDragIn ? onGroupDragLeave : undefined}\n onDrop={canDragIn ? onGroupDrop : undefined}\n >\n <HStack\n px=\"xs\"\n py=\"2xs\"\n gap=\"2xs\"\n cursor=\"pointer\"\n _hover={{ bg: \"bg.muted\" }}\n borderRadius=\"sm\"\n onClick={() => setExpanded((v) => !v)}\n >\n <Box display=\"flex\" alignItems=\"center\" flexShrink={0}>\n <Icon\n as={ChevronRight}\n boxSize=\"14px\"\n color=\"fg.muted\"\n transform={expanded ? \"rotate(90deg)\" : \"rotate(0deg)\"}\n transition=\"transform 0.15s ease\"\n />\n </Box>\n <Text textStyle=\"label/S/medium\" color=\"fg.muted\">\n {group.label}\n </Text>\n <Badge variant=\"subtle\" colorPalette=\"gray\" size=\"sm\">\n {group.items.length}\n </Badge>\n </HStack>\n {expanded && (\n <Stack gap=\"sm\" pt=\"xs\">\n {group.items.map((item) => (\n <TicketCard\n key={item.id}\n {...item.cardProps}\n isSelected={item.id === selectedItemId}\n draggable={canDragOut}\n onDragStart={canDragOut ? onDragStart(item.id) : undefined}\n onDragEnd={canDragOut ? onDragEnd : undefined}\n />\n ))}\n </Stack>\n )}\n </Stack>\n );\n};\n\nconst ColumnHeader = (props: ColumnHeaderProps) => {\n const { column, onCreateStart, onColumnAction } = props;\n\n return (\n <HStack padding=\"xs\" gap=\"xs\" alignItems=\"center\">\n <Text textStyle=\"label/L/medium\">{column.label}</Text>\n\n <Badge variant=\"subtle\" colorPalette={column.color ?? \"gray\"}>\n {column.items.length}\n </Badge>\n\n <Spacer />\n\n {column.canCreate && onCreateStart && (\n <Tooltip content=\"Create new ticket\">\n <IconButton size=\"2xs\" variant=\"outline\" onClick={() => onCreateStart(column.id)} aria-label=\"Create ticket\">\n <Icon as={Plus} boxSize=\"12px\" />\n </IconButton>\n </Tooltip>\n )}\n\n {column.actions.length > 0 && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton size=\"2xs\" variant=\"ghost\" aria-label={`Column actions for ${column.label}`}>\n <Icon as={MoreHorizontal} boxSize=\"12px\" />\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"180px\" bg=\"bg\">\n {column.actions.map((action) => (\n <MenuItem\n key={action.id}\n primaryLabel={action.label}\n leftIcon={action.icon}\n onClick={() => onColumnAction?.(column.id, action.id)}\n />\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n )}\n </HStack>\n );\n};\n","import { Badge, Box, HStack, Icon, Text, Wrap } from \"@chakra-ui/react\";\nimport {\n type ColumnDef,\n type ExpandedState,\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n type Row,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { ChevronRight } from \"lucide-react\";\nimport { type ComponentType, type ReactNode, useState } from \"react\";\n\nimport type { TicketCardBadge } from \"./ticket-card\";\n\nexport interface TicketListItem {\n id: string;\n ticketId: string;\n title: string;\n statusIcon?: ComponentType<{ size?: number | string }>;\n statusColor?: string;\n badges?: TicketCardBadge[];\n date?: string;\n assigneeIcon?: ReactNode;\n children?: TicketListItem[];\n onClick?: () => void;\n}\n\ninterface TicketListProps {\n items: TicketListItem[];\n selectedItemId?: string | null;\n onItemClick?: (item: TicketListItem) => void;\n}\n\nconst columns: ColumnDef<TicketListItem, unknown>[] = [\n {\n id: \"ticket\",\n header: \"\",\n cell: ({ row }) => <TicketCell row={row} />,\n },\n];\n\nexport const TicketList = (props: TicketListProps) => {\n const { items, selectedItemId = null, onItemClick } = props;\n\n const [expanded, setExpanded] = useState<ExpandedState>(true);\n\n const table = useReactTable({\n data: items,\n columns,\n state: { expanded },\n onExpandedChange: setExpanded,\n getSubRows: (row) => row.children,\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getRowId: (row) => row.id,\n });\n\n return (\n <Box>\n {table.getRowModel().rows.map((row) => {\n const item = row.original;\n const isSelected = item.id === selectedItemId;\n const canExpand = row.getCanExpand();\n\n return (\n <HStack\n key={row.id}\n paddingX=\"sm\"\n paddingY=\"xs\"\n gap=\"sm\"\n cursor=\"pointer\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.muted\"\n background={isSelected ? \"bg.muted\" : \"transparent\"}\n _hover={{ background: \"bg.muted\" }}\n onClick={() => {\n if (canExpand) {\n row.toggleExpanded();\n } else {\n item.onClick?.();\n onItemClick?.(item);\n }\n }}\n data-selected={isSelected ? \"true\" : undefined}\n >\n {flexRender(row.getVisibleCells()[0].column.columnDef.cell, row.getVisibleCells()[0].getContext())}\n </HStack>\n );\n })}\n </Box>\n );\n};\n\ninterface TicketCellProps {\n row: Row<TicketListItem>;\n}\n\nconst TicketCell = (props: TicketCellProps) => {\n const { row } = props;\n const item = row.original;\n const depth = row.depth;\n\n return (\n <HStack gap=\"sm\" flex=\"1\" paddingLeft={depth > 0 ? `${depth * 24}px` : undefined}>\n {row.getCanExpand() ? <ExpandToggle row={row} /> : depth > 0 ? <TreeConnector /> : null}\n\n {item.statusIcon && (\n <Icon as={item.statusIcon} boxSize=\"16px\" color={item.statusColor ?? \"fg.muted\"} flexShrink={0} />\n )}\n\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\" flexShrink={0} minW=\"70px\">\n {item.ticketId}\n </Text>\n\n <Text textStyle=\"label/S/regular\" flex=\"1\" truncate>\n {item.title}\n </Text>\n\n {item.badges && item.badges.length > 0 && (\n <Wrap gap=\"2xs\" flexShrink={0}>\n {item.badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n\n {item.assigneeIcon && <Box flexShrink={0}>{item.assigneeIcon}</Box>}\n\n {item.date && (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\" flexShrink={0}>\n {item.date}\n </Text>\n )}\n </HStack>\n );\n};\n\ninterface ExpandToggleProps {\n row: Row<TicketListItem>;\n}\n\nconst ExpandToggle = (props: ExpandToggleProps) => {\n const { row } = props;\n const isExpanded = row.getIsExpanded();\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n width=\"16px\"\n height=\"16px\"\n data-expanded={isExpanded ? \"true\" : undefined}\n aria-label={isExpanded ? \"Collapse group\" : \"Expand group\"}\n >\n <ChevronRight\n size={14}\n style={{\n color: \"var(--chakra-colors-fg-muted)\",\n transform: isExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.15s ease\",\n }}\n />\n </Box>\n );\n};\n\nconst TreeConnector = () => (\n <Box width=\"16px\" height=\"16px\" position=\"relative\" flexShrink={0}>\n <Box position=\"absolute\" left=\"7px\" top=\"0\" bottom=\"50%\" borderLeftWidth=\"1px\" borderColor=\"border.muted\" />\n <Box position=\"absolute\" left=\"7px\" top=\"50%\" width=\"8px\" borderBottomWidth=\"1px\" borderColor=\"border.muted\" />\n </Box>\n);\n","import type { FilterCategory, FilterState, GroupingField, WorkspaceOrdering, WorkspaceTicket } from \"./types\";\n\ninterface GroupingOptions {\n columnGrouping: GroupingField;\n rowGrouping: GroupingField;\n knownColumnKeys?: string[];\n}\n\ninterface TicketRowGroup {\n key: string;\n label: string;\n tickets: WorkspaceTicket[];\n}\n\ninterface TicketColumnGroup {\n key: string;\n label: string;\n tickets: WorkspaceTicket[];\n rows: TicketRowGroup[];\n}\n\nconst FALLBACK_LABELS: Record<Exclude<GroupingField, \"none\">, string> = {\n status: \"No status\",\n complexity: \"Unspecified\",\n assignee: \"Unassigned\",\n priority: \"Unspecified\",\n};\n\nconst COMPLEXITY_RANK: Record<string, number> = {\n high: 3,\n medium: 2,\n low: 1,\n};\n\nconst PRIORITY_RANK: Record<string, number> = {\n p0: 5,\n p1: 4,\n p2: 3,\n p3: 2,\n p4: 1,\n};\n\nconst normalize = (value: string | null | undefined, fallback: string) => {\n if (!value || value.trim() === \"\") {\n return fallback;\n }\n\n return value;\n};\n\nconst getGroupingValue = (ticket: WorkspaceTicket, grouping: GroupingField) => {\n if (grouping === \"none\") {\n return \"All\";\n }\n\n if (grouping === \"status\") {\n return normalize(ticket.status, FALLBACK_LABELS.status);\n }\n\n if (grouping === \"complexity\") {\n return normalize(ticket.complexity, FALLBACK_LABELS.complexity);\n }\n\n if (grouping === \"assignee\") {\n return normalize(ticket.assignee, FALLBACK_LABELS.assignee);\n }\n\n return normalize(ticket.priority, FALLBACK_LABELS.priority);\n};\n\nconst compareGroupKey = (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true });\n\nconst orderByDirection = (value: number, direction: WorkspaceOrdering[\"direction\"]) =>\n direction === \"asc\" ? value : value * -1;\n\nexport const orderTickets = (tickets: WorkspaceTicket[], ordering: WorkspaceOrdering) => {\n if (ordering.field === \"manual\") {\n return tickets;\n }\n\n return [...tickets].sort((a, b) => {\n if (ordering.field === \"updated\") {\n const left = new Date(a.updatedAt ?? 0).getTime();\n const right = new Date(b.updatedAt ?? 0).getTime();\n return orderByDirection(left - right, ordering.direction);\n }\n\n if (ordering.field === \"title\") {\n return orderByDirection(a.title.localeCompare(b.title), ordering.direction);\n }\n\n if (ordering.field === \"complexity\") {\n const left = COMPLEXITY_RANK[(a.complexity ?? \"\").toLowerCase()] ?? 0;\n const right = COMPLEXITY_RANK[(b.complexity ?? \"\").toLowerCase()] ?? 0;\n return orderByDirection(left - right, ordering.direction);\n }\n\n if (ordering.field === \"priority\") {\n const left = PRIORITY_RANK[(a.priority ?? \"\").toLowerCase()] ?? 0;\n const right = PRIORITY_RANK[(b.priority ?? \"\").toLowerCase()] ?? 0;\n return orderByDirection(left - right, ordering.direction);\n }\n\n return orderByDirection(a.ticketId.localeCompare(b.ticketId, undefined, { numeric: true }), ordering.direction);\n });\n};\n\nexport const groupTickets = (tickets: WorkspaceTicket[], options: GroupingOptions): TicketColumnGroup[] => {\n const { columnGrouping, rowGrouping, knownColumnKeys } = options;\n const groupedByColumn = new Map<string, WorkspaceTicket[]>();\n\n // Seed with known keys so empty columns are preserved\n if (knownColumnKeys) {\n for (const key of knownColumnKeys) {\n groupedByColumn.set(key, []);\n }\n }\n\n for (const ticket of tickets) {\n const key = getGroupingValue(ticket, columnGrouping);\n groupedByColumn.set(key, [...(groupedByColumn.get(key) ?? []), ticket]);\n }\n\n const columnEntries = [...groupedByColumn.entries()].sort(([left], [right]) => compareGroupKey(left, right));\n\n return columnEntries.map(([columnKey, columnTickets]) => {\n if (rowGrouping === \"none\") {\n return {\n key: columnKey,\n label: columnKey,\n tickets: columnTickets,\n rows: [],\n };\n }\n\n const groupedByRow = new Map<string, WorkspaceTicket[]>();\n\n for (const ticket of columnTickets) {\n const rowKey = getGroupingValue(ticket, rowGrouping);\n groupedByRow.set(rowKey, [...(groupedByRow.get(rowKey) ?? []), ticket]);\n }\n\n const rows = [...groupedByRow.entries()]\n .sort(([left], [right]) => compareGroupKey(left, right))\n .map(([rowKey, rowTickets]) => ({\n key: rowKey,\n label: rowKey,\n tickets: rowTickets,\n }));\n\n return {\n key: columnKey,\n label: columnKey,\n tickets: columnTickets,\n rows,\n };\n });\n};\n\nconst getTicketFilterValues = (ticket: WorkspaceTicket, category: FilterCategory) => {\n if (category === \"labels\") {\n return ticket.labels ?? [];\n }\n\n if (category === \"status\") {\n return [normalize(ticket.status, FALLBACK_LABELS.status)];\n }\n\n if (category === \"assignee\") {\n return [normalize(ticket.assignee, FALLBACK_LABELS.assignee)];\n }\n\n if (category === \"priority\") {\n return [normalize(ticket.priority, FALLBACK_LABELS.priority)];\n }\n\n return [normalize(ticket.complexity, FALLBACK_LABELS.complexity)];\n};\n\nexport const filterTickets = (tickets: WorkspaceTicket[], filters: FilterState) => {\n const activeFilters = Object.entries(filters).filter(([, values]) => values && values.length > 0);\n\n if (activeFilters.length === 0) {\n return tickets;\n }\n\n return tickets.filter((ticket) =>\n activeFilters.every(([category, values]) => {\n const ticketValues = getTicketFilterValues(ticket, category as FilterCategory);\n return ticketValues.some((value) => values?.includes(value));\n }),\n );\n};\n\nexport const countFilterValues = (tickets: WorkspaceTicket[], category: FilterCategory) => {\n const counts: Record<string, number> = {};\n\n for (const ticket of tickets) {\n for (const value of getTicketFilterValues(ticket, category)) {\n counts[value] = (counts[value] ?? 0) + 1;\n }\n }\n\n return counts;\n};\n\nexport type { TicketColumnGroup, TicketRowGroup };\n","export type ViewMode = \"board\" | \"list\";\n\nexport type GroupingField = \"status\" | \"complexity\" | \"assignee\" | \"priority\" | \"none\";\n\nexport type OrderingField = \"manual\" | \"updated\" | \"title\" | \"complexity\" | \"priority\" | \"ticketId\";\n\nexport type SortDirection = \"asc\" | \"desc\";\n\nexport type DisplayProperty = \"id\" | \"status\" | \"assignee\" | \"priority\" | \"complexity\" | \"labels\" | \"updated\";\n\nexport type FilterCategory = \"status\" | \"assignee\" | \"priority\" | \"complexity\" | \"labels\";\n\nexport interface WorkspaceOrdering {\n field: OrderingField;\n direction: SortDirection;\n}\n\nexport interface WorkspaceSettings {\n viewMode: ViewMode;\n columnGrouping: GroupingField;\n rowGrouping: GroupingField;\n ordering: WorkspaceOrdering;\n displayProperties: DisplayProperty[];\n}\n\nexport type FilterState = Partial<Record<FilterCategory, string[]>>;\n\nexport interface WorkspaceOption<TValue extends string> {\n value: TValue;\n label: string;\n}\n\nexport interface WorkspaceFilterOption {\n value: string;\n label: string;\n}\n\nexport interface WorkspaceFilterCategory {\n id: FilterCategory;\n label: string;\n options: WorkspaceFilterOption[];\n}\n\nexport interface WorkspaceTicket {\n id: string;\n ticketId: string;\n title: string;\n status?: string | null;\n statusColor?: string;\n assignee?: string | null;\n priority?: string | null;\n complexity?: string | null;\n labels?: string[];\n updatedAt?: string | null;\n parentPath?: string[];\n isSubIssue?: boolean;\n}\n\nexport const DEFAULT_WORKSPACE_SETTINGS: WorkspaceSettings = {\n viewMode: \"board\",\n columnGrouping: \"status\",\n rowGrouping: \"none\",\n ordering: {\n field: \"manual\",\n direction: \"asc\",\n },\n displayProperties: [\"complexity\", \"priority\", \"labels\"],\n};\n\nexport const DEFAULT_GROUPING_OPTIONS: WorkspaceOption<GroupingField>[] = [\n { value: \"status\", label: \"Status\" },\n { value: \"complexity\", label: \"Complexity\" },\n { value: \"assignee\", label: \"Assignee\" },\n { value: \"priority\", label: \"Priority\" },\n { value: \"none\", label: \"No grouping\" },\n];\n\nexport const DEFAULT_ORDERING_OPTIONS: WorkspaceOption<OrderingField>[] = [\n { value: \"manual\", label: \"Manual\" },\n { value: \"updated\", label: \"Updated\" },\n { value: \"title\", label: \"Title\" },\n { value: \"complexity\", label: \"Complexity\" },\n { value: \"priority\", label: \"Priority\" },\n { value: \"ticketId\", label: \"ID\" },\n];\n\nexport const DEFAULT_DISPLAY_PROPERTY_OPTIONS: WorkspaceOption<DisplayProperty>[] = [\n { value: \"id\", label: \"ID\" },\n { value: \"status\", label: \"Status\" },\n { value: \"assignee\", label: \"Assignee\" },\n { value: \"priority\", label: \"Priority\" },\n { value: \"complexity\", label: \"Complexity\" },\n { value: \"labels\", label: \"Labels\" },\n { value: \"updated\", label: \"Updated\" },\n];\n","import { useStore } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\nimport { DEFAULT_WORKSPACE_SETTINGS, type FilterCategory, type FilterState, type WorkspaceSettings } from \"./types\";\n\ninterface WorkspaceSnapshot {\n settings: WorkspaceSettings;\n filters: FilterState;\n}\n\ninterface WorkspaceState extends WorkspaceSnapshot {\n setViewMode: (viewMode: WorkspaceSettings[\"viewMode\"]) => void;\n setColumnGrouping: (columnGrouping: WorkspaceSettings[\"columnGrouping\"]) => void;\n setRowGrouping: (rowGrouping: WorkspaceSettings[\"rowGrouping\"]) => void;\n setOrdering: (ordering: WorkspaceSettings[\"ordering\"]) => void;\n setOrderingField: (field: WorkspaceSettings[\"ordering\"][\"field\"]) => void;\n toggleSortDirection: () => void;\n toggleDisplayProperty: (property: WorkspaceSettings[\"displayProperties\"][number]) => void;\n setFilter: (category: FilterCategory, values: string[]) => void;\n toggleFilterValue: (category: FilterCategory, value: string) => void;\n clearFilter: (category: FilterCategory) => void;\n clearAllFilters: () => void;\n reset: () => void;\n}\n\ninterface CreateTicketsWorkspaceStoreOptions {\n storageKey: string;\n initialState?: Partial<WorkspaceSnapshot>;\n}\n\nconst WORKSPACE_STORE_NAMESPACE = \"pstdio/ui/tickets-workspace\";\n\nconst toStorageName = (storageKey: string) => `${WORKSPACE_STORE_NAMESPACE}/${storageKey}`;\n\nconst DEFAULT_SNAPSHOT: WorkspaceSnapshot = {\n settings: DEFAULT_WORKSPACE_SETTINGS,\n filters: {},\n};\n\nconst createNoopStorage = () => ({\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n});\n\nconst toggleValue = (values: string[], value: string) =>\n values.includes(value) ? values.filter((entry) => entry !== value) : [...values, value];\n\nexport const createTicketsWorkspaceStore = (options: CreateTicketsWorkspaceStoreOptions) => {\n const { storageKey, initialState } = options;\n const snapshot = {\n settings: { ...DEFAULT_SNAPSHOT.settings, ...(initialState?.settings ?? {}) },\n filters: initialState?.filters ?? DEFAULT_SNAPSHOT.filters,\n };\n\n return createStore<WorkspaceState>()(\n persist(\n (set) => ({\n ...snapshot,\n setViewMode: (viewMode) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, viewMode },\n })),\n setColumnGrouping: (columnGrouping) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, columnGrouping },\n })),\n setRowGrouping: (rowGrouping) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, rowGrouping },\n })),\n setOrdering: (ordering) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, ordering },\n })),\n setOrderingField: (field) =>\n set((state) => ({\n ...state,\n settings: {\n ...state.settings,\n ordering: {\n ...state.settings.ordering,\n field,\n },\n },\n })),\n toggleSortDirection: () =>\n set((state) => ({\n ...state,\n settings: {\n ...state.settings,\n ordering: {\n ...state.settings.ordering,\n direction: state.settings.ordering.direction === \"asc\" ? \"desc\" : \"asc\",\n },\n },\n })),\n toggleDisplayProperty: (property) =>\n set((state) => {\n const displayProperties = state.settings.displayProperties.includes(property)\n ? state.settings.displayProperties.filter((value) => value !== property)\n : [...state.settings.displayProperties, property];\n\n return {\n ...state,\n settings: {\n ...state.settings,\n displayProperties,\n },\n };\n }),\n setFilter: (category, values) =>\n set((state) => ({\n ...state,\n filters: {\n ...state.filters,\n [category]: values,\n },\n })),\n toggleFilterValue: (category, value) =>\n set((state) => {\n const currentValues = state.filters[category] ?? [];\n const nextValues = toggleValue(currentValues, value);\n const nextFilters = { ...state.filters, [category]: nextValues };\n\n if (nextValues.length === 0) {\n delete nextFilters[category];\n }\n\n return { ...state, filters: nextFilters };\n }),\n clearFilter: (category) =>\n set((state) => {\n const nextFilters = { ...state.filters };\n delete nextFilters[category];\n\n return {\n ...state,\n filters: nextFilters,\n };\n }),\n clearAllFilters: () => set((state) => ({ ...state, filters: {} })),\n reset: () => set(DEFAULT_SNAPSHOT),\n }),\n {\n name: toStorageName(storageKey),\n storage: createJSONStorage(() => {\n if (typeof globalThis.localStorage === \"undefined\") {\n return createNoopStorage();\n }\n\n return globalThis.localStorage;\n }),\n partialize: (state) => ({\n settings: state.settings,\n filters: state.filters,\n }),\n },\n ),\n );\n};\n\nconst workspaceStoreRegistry = new Map<string, ReturnType<typeof createTicketsWorkspaceStore>>();\n\nexport const getTicketsWorkspaceStore = (storageKey: string) => {\n const existingStore = workspaceStoreRegistry.get(storageKey);\n if (existingStore) {\n return existingStore;\n }\n\n const store = createTicketsWorkspaceStore({ storageKey });\n workspaceStoreRegistry.set(storageKey, store);\n\n return store;\n};\n\nexport const useTicketsWorkspaceStore = <T>(storageKey: string, selector: (state: WorkspaceState) => T) => {\n const store = getTicketsWorkspaceStore(storageKey);\n return useStore(store, selector);\n};\n\nexport type { WorkspaceState };\n","import { Box, HStack, Stack } from \"@chakra-ui/react\";\n\nimport { EmptyState } from \"@/components/empty-state\";\n\nimport { DisplayMenu } from \"./display-menu\";\nimport { FilterMenu } from \"./filter-menu\";\nimport {\n TicketBoard,\n type TicketBoardColumn,\n type TicketBoardColumnAction,\n type TicketBoardGroup,\n} from \"./ticket-board\";\nimport type { TicketCardBadge } from \"./ticket-card\";\nimport { countFilterValues, filterTickets, groupTickets, orderTickets } from \"./ticket-grouping\";\nimport { TicketList, type TicketListItem } from \"./ticket-list\";\nimport {\n DEFAULT_DISPLAY_PROPERTY_OPTIONS,\n DEFAULT_GROUPING_OPTIONS,\n DEFAULT_ORDERING_OPTIONS,\n type DisplayProperty,\n type FilterCategory,\n type GroupingField,\n type OrderingField,\n type WorkspaceFilterCategory,\n type WorkspaceOption,\n type WorkspaceTicket,\n} from \"./types\";\nimport { useTicketsWorkspaceStore } from \"./use-workspace-store\";\n\ninterface BoardColumnConfig {\n color?: string;\n canDragIn?: boolean;\n canDragOut?: boolean;\n canCreate?: boolean;\n actions?: TicketBoardColumnAction[];\n}\n\ninterface TicketsWorkspaceProps<TTicket extends WorkspaceTicket = WorkspaceTicket> {\n tickets: TTicket[];\n storageKey: string;\n selectedTicketId?: string | null;\n groupingOptions?: WorkspaceOption<GroupingField>[];\n orderingOptions?: WorkspaceOption<OrderingField>[];\n displayPropertyOptions?: WorkspaceOption<DisplayProperty>[];\n filterCategories?: WorkspaceFilterCategory[];\n knownColumnKeys?: string[];\n emptyTitle?: string;\n emptyDescription?: string;\n onTicketClick?: (ticket: TTicket) => void;\n onMoveTicket?: (ticketId: string, targetColumnId: string) => void;\n onMoveToGroup?: (ticketId: string, targetGroupKey: string) => void;\n onCreateTicket?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig;\n}\n\nconst PRIORITY_COLORS: Record<string, string> = {\n p0: \"red\",\n p1: \"red\",\n p2: \"orange\",\n p3: \"yellow\",\n p4: \"gray\",\n};\n\nconst COMPLEXITY_COLORS: Record<string, string> = {\n high: \"red\",\n medium: \"yellow\",\n low: \"green\",\n};\n\nconst toTitleCase = (value: string) =>\n value\n .replaceAll(\"_\", \" \")\n .split(\" \")\n .filter((chunk) => chunk.length > 0)\n .map((chunk) => chunk[0]!.toUpperCase() + chunk.slice(1))\n .join(\" \");\n\nconst filterValueGetters: Record<FilterCategory, (ticket: WorkspaceTicket) => string[]> = {\n status: (ticket) => (ticket.status ? [ticket.status] : []),\n assignee: (ticket) => (ticket.assignee ? [ticket.assignee] : []),\n priority: (ticket) => (ticket.priority ? [ticket.priority] : []),\n complexity: (ticket) => (ticket.complexity ? [ticket.complexity] : []),\n labels: (ticket) => ticket.labels ?? [],\n};\n\nconst collectCategoryOptions = (tickets: WorkspaceTicket[], category: FilterCategory) => {\n const values = new Set<string>();\n\n for (const ticket of tickets) {\n const ticketValues = filterValueGetters[category](ticket);\n for (const value of ticketValues) {\n values.add(value);\n }\n }\n\n return [...values]\n .sort((a, b) => a.localeCompare(b, undefined, { numeric: true }))\n .map((value) => ({ value, label: toTitleCase(value) }));\n};\n\nconst buildDefaultFilterCategories = (tickets: WorkspaceTicket[]): WorkspaceFilterCategory[] => {\n return [\n { id: \"status\", label: \"Status\", options: collectCategoryOptions(tickets, \"status\") },\n { id: \"assignee\", label: \"Assignee\", options: collectCategoryOptions(tickets, \"assignee\") },\n { id: \"priority\", label: \"Priority\", options: collectCategoryOptions(tickets, \"priority\") },\n { id: \"complexity\", label: \"Complexity\", options: collectCategoryOptions(tickets, \"complexity\") },\n { id: \"labels\", label: \"Labels\", options: collectCategoryOptions(tickets, \"labels\") },\n ];\n};\n\nconst toBadges = (ticket: WorkspaceTicket, displayProperties: DisplayProperty[]): TicketCardBadge[] => {\n const badges: TicketCardBadge[] = [];\n const includes = (property: DisplayProperty) => displayProperties.includes(property);\n\n if (includes(\"status\") && ticket.status) {\n badges.push({ label: ticket.status, color: ticket.statusColor ?? \"gray\" });\n }\n\n if (includes(\"assignee\") && ticket.assignee) {\n badges.push({ label: ticket.assignee, color: \"blue\" });\n }\n\n if (includes(\"priority\") && ticket.priority) {\n badges.push({ label: ticket.priority, color: PRIORITY_COLORS[ticket.priority.toLowerCase()] ?? \"gray\" });\n }\n\n if (includes(\"complexity\") && ticket.complexity) {\n badges.push({ label: ticket.complexity, color: COMPLEXITY_COLORS[ticket.complexity.toLowerCase()] ?? \"gray\" });\n }\n\n if (includes(\"updated\") && ticket.updatedAt) {\n badges.push({ label: new Date(ticket.updatedAt).toLocaleDateString(), color: \"gray\" });\n }\n\n if (includes(\"labels\")) {\n for (const label of ticket.labels ?? []) {\n badges.push({ label, color: \"purple\" });\n }\n }\n\n return badges;\n};\n\nexport const TicketsWorkspace = <TTicket extends WorkspaceTicket>(props: TicketsWorkspaceProps<TTicket>) => {\n const {\n tickets,\n storageKey,\n selectedTicketId = null,\n groupingOptions = DEFAULT_GROUPING_OPTIONS,\n orderingOptions = DEFAULT_ORDERING_OPTIONS,\n displayPropertyOptions = DEFAULT_DISPLAY_PROPERTY_OPTIONS,\n filterCategories,\n knownColumnKeys: knownColumnKeysProp,\n emptyTitle = \"No tickets found\",\n emptyDescription = \"Try changing filters or display settings.\",\n onTicketClick,\n onMoveTicket,\n onMoveToGroup,\n onCreateTicket,\n onColumnAction,\n getBoardColumnConfig,\n } = props;\n\n const settings = useTicketsWorkspaceStore(storageKey, (state) => state.settings);\n const filters = useTicketsWorkspaceStore(storageKey, (state) => state.filters);\n const setViewMode = useTicketsWorkspaceStore(storageKey, (state) => state.setViewMode);\n const setColumnGrouping = useTicketsWorkspaceStore(storageKey, (state) => state.setColumnGrouping);\n const setRowGrouping = useTicketsWorkspaceStore(storageKey, (state) => state.setRowGrouping);\n const setOrderingField = useTicketsWorkspaceStore(storageKey, (state) => state.setOrderingField);\n const toggleSortDirection = useTicketsWorkspaceStore(storageKey, (state) => state.toggleSortDirection);\n const toggleDisplayProperty = useTicketsWorkspaceStore(storageKey, (state) => state.toggleDisplayProperty);\n const toggleFilterValue = useTicketsWorkspaceStore(storageKey, (state) => state.toggleFilterValue);\n const clearFilter = useTicketsWorkspaceStore(storageKey, (state) => state.clearFilter);\n const clearAllFilters = useTicketsWorkspaceStore(storageKey, (state) => state.clearAllFilters);\n\n const visibleTickets = filterTickets(tickets, filters) as TTicket[];\n\n const categoryOptions = filterCategories ?? buildDefaultFilterCategories(tickets);\n\n const countsByCategory = Object.fromEntries(\n categoryOptions.map((category) => [category.id, countFilterValues(tickets, category.id)]),\n );\n\n const knownColumnKeys =\n knownColumnKeysProp ??\n (settings.columnGrouping !== \"none\"\n ? categoryOptions.find((c) => c.id === settings.columnGrouping)?.options.map((o) => o.value)\n : undefined);\n\n const grouped = groupTickets(visibleTickets, {\n columnGrouping: settings.columnGrouping,\n rowGrouping: settings.rowGrouping,\n knownColumnKeys,\n });\n\n const toListItem = (ticket: TTicket): TicketListItem => ({\n id: ticket.id,\n ticketId: settings.displayProperties.includes(\"id\") ? ticket.ticketId : \"\",\n title: ticket.title,\n badges: toBadges(ticket, settings.displayProperties),\n onClick: () => onTicketClick?.(ticket),\n });\n\n const toGroupListItem = (group: { key: string; label: string; tickets: WorkspaceTicket[] }): TicketListItem => ({\n id: `group::${group.key}`,\n ticketId: \"\",\n title: `${toTitleCase(group.label)} (${group.tickets.length})`,\n children: orderTickets(group.tickets, settings.ordering).map((ticket) => toListItem(ticket as TTicket)),\n });\n\n const listItems: TicketListItem[] =\n settings.columnGrouping === \"none\"\n ? orderTickets(visibleTickets, settings.ordering).map((ticket) => toListItem(ticket as TTicket))\n : grouped.map((group) => {\n if (group.rows.length > 0) {\n return {\n id: `group::${group.key}`,\n ticketId: \"\",\n title: `${toTitleCase(group.label)} (${group.tickets.length})`,\n children: group.rows.map((row) => ({\n ...toGroupListItem(row),\n id: `group::${group.key}::${row.key}`,\n })),\n };\n }\n return toGroupListItem(group);\n });\n\n const toBoardItems = (tickets: WorkspaceTicket[]) =>\n tickets.map((ticket) => ({\n id: ticket.id,\n cardProps: {\n ticketId: settings.displayProperties.includes(\"id\") ? ticket.ticketId : \"\",\n parentPath: ticket.parentPath,\n title: ticket.title,\n badges: toBadges(ticket, settings.displayProperties),\n onClick: () => onTicketClick?.(ticket as TTicket),\n },\n }));\n\n const boardColumns: TicketBoardColumn[] = grouped.map((column) => {\n const columnConfig = getBoardColumnConfig?.(column.key) ?? {};\n const orderedTickets = orderTickets(column.tickets, settings.ordering);\n\n const groups: TicketBoardGroup[] | undefined =\n column.rows.length > 0\n ? column.rows.map((row) => ({\n key: row.key,\n label: toTitleCase(row.label),\n items: toBoardItems(orderTickets(row.tickets, settings.ordering)),\n }))\n : undefined;\n\n return {\n id: column.key,\n label: column.label,\n color: columnConfig.color,\n canDragIn: columnConfig.canDragIn ?? false,\n canDragOut: columnConfig.canDragOut ?? false,\n canCreate: columnConfig.canCreate ?? false,\n actions: columnConfig.actions ?? [],\n items: toBoardItems(orderedTickets),\n groups,\n } satisfies TicketBoardColumn;\n });\n\n return (\n <Stack gap=\"sm\" height=\"100%\" minH=\"0\">\n <HStack justifyContent=\"flex-end\" gap=\"2xs\">\n <FilterMenu\n categories={categoryOptions}\n filters={filters}\n countsByCategory={countsByCategory}\n onToggleFilterValue={toggleFilterValue}\n onClearFilter={clearFilter}\n onClearAll={clearAllFilters}\n />\n <DisplayMenu\n settings={settings}\n groupingOptions={groupingOptions}\n orderingOptions={orderingOptions}\n displayPropertyOptions={displayPropertyOptions}\n onViewModeChange={setViewMode}\n onColumnGroupingChange={setColumnGrouping}\n onRowGroupingChange={setRowGrouping}\n onOrderingFieldChange={setOrderingField}\n onSortDirectionToggle={toggleSortDirection}\n onDisplayPropertyToggle={toggleDisplayProperty}\n />\n </HStack>\n\n {settings.viewMode === \"board\" ? (\n <Box flex=\"1\" minH=\"0\">\n {boardColumns.length > 0 ? (\n <TicketBoard\n columns={boardColumns}\n selectedItemId={selectedTicketId}\n onMoveItem={onMoveTicket}\n onMoveToGroup={onMoveToGroup}\n onCreateStart={onCreateTicket}\n onColumnAction={onColumnAction}\n />\n ) : (\n <EmptyState\n title={emptyTitle}\n description={emptyDescription}\n height=\"100%\"\n borderWidth=\"1px\"\n borderRadius=\"md\"\n />\n )}\n </Box>\n ) : listItems.length > 0 ? (\n <TicketList items={listItems} selectedItemId={selectedTicketId} />\n ) : (\n <EmptyState title={emptyTitle} description={emptyDescription} borderWidth=\"1px\" borderRadius=\"md\" />\n )}\n </Stack>\n );\n};\n\nexport type { TicketsWorkspaceProps };\n","import { Toaster as ChakraToaster, createToaster, Portal, Spinner, Stack, Toast } from \"@chakra-ui/react\";\n\nexport const toaster: ReturnType<typeof createToaster> = createToaster({\n placement: \"bottom-end\",\n pauseOnPageIdle: true,\n});\n\nexport const Toaster = () => {\n return (\n <Portal>\n <ChakraToaster toaster={toaster} insetInline={{ mdDown: \"4\" }}>\n {(toast) => (\n <Toast.Root width={{ md: \"sm\" }}>\n {toast.type === \"loading\" ? <Spinner size=\"sm\" color=\"blue.solid\" /> : <Toast.Indicator />}\n <Stack gap=\"1\" flex=\"1\" maxWidth=\"100%\">\n {toast.title && <Toast.Title>{toast.title}</Toast.Title>}\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Stack>\n {toast.action && <Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>}\n {toast.closable && <Toast.CloseTrigger />}\n </Toast.Root>\n )}\n </ChakraToaster>\n </Portal>\n );\n};\n","export type ThemePreference = \"light\" | \"dark\";\n\nexport const applyThemePreference = (theme: ThemePreference) => {\n if (typeof document === \"undefined\") return;\n\n const root = document.documentElement;\n const body = document.body;\n const opposite = theme === \"dark\" ? \"light\" : \"dark\";\n\n for (const el of [root, body]) {\n if (!el) continue;\n el.classList.remove(opposite);\n el.classList.add(theme);\n el.setAttribute(\"data-theme\", theme);\n el.style.colorScheme = theme;\n }\n};\n","import { createContext, type ReactNode, useContext, useEffect, useState } from \"react\";\n\nimport { applyThemePreference, type ThemePreference } from \"./apply-theme-preference\";\n\nconst STORAGE_KEY = \"theme-preference\";\n\nconst ThemePreferenceContext = createContext<ThemePreferenceContextValue | null>(null);\n\ninterface ThemePreferenceContextValue {\n themePreference: ThemePreference;\n setThemePreference: (preference: ThemePreference) => void;\n toggleThemePreference: () => void;\n}\n\ninterface ThemePreferenceProviderProps {\n children: ReactNode;\n initialPreference?: ThemePreference;\n}\n\nexport const getInitialThemePreference = () => {\n if (typeof window === \"undefined\") return \"light\";\n\n const stored = window.localStorage.getItem(STORAGE_KEY);\n if (stored === \"dark\" || stored === \"light\") return stored;\n\n const prefersDark =\n typeof window.matchMedia === \"function\" && window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n return prefersDark ? \"dark\" : \"light\";\n};\n\nexport const ThemePreferenceProvider = (props: ThemePreferenceProviderProps) => {\n const { children, initialPreference = getInitialThemePreference() } = props;\n const [themePreference, setThemePreference] = useState<ThemePreference>(initialPreference);\n\n useEffect(() => {\n applyThemePreference(themePreference);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(STORAGE_KEY, themePreference);\n }\n }, [themePreference]);\n\n const toggleThemePreference = () => setThemePreference((prev) => (prev === \"dark\" ? \"light\" : \"dark\"));\n\n return (\n <ThemePreferenceContext value={{ themePreference, setThemePreference, toggleThemePreference }}>\n {children}\n </ThemePreferenceContext>\n );\n};\n\nexport const useThemePreference = () => {\n const context = useContext(ThemePreferenceContext);\n\n if (!context) {\n throw new Error(\"useThemePreference must be used within a ThemePreferenceProvider\");\n }\n\n return context;\n};\n"],"names":["AlertMessage","React","forwardRef","props","ref","$","_c","children","endElement","icon","rest","startElement","title","t0","jsx","ChakraAlert","t1","jsxs","t2","Breadcrumb","LinkComponent","items","separator","separatorGap","linkComponent","length","item","index","last","isInteractive","Boolean","url","onClick","itemContent","ChakraBreadcrumb","map","Checkbox","inputProps","rootRef","disabled","undefined","interactiveCursor","ChakraCheckbox","t3","t4","t5","ContentPlaceholder","Symbol","for","backgroundClip","backgroundImage","display","width","Box","Label","Text","DeleteConfirmationModal","isDeleting","setIsDeleting","useState","headline","buttonText","notificationText","onDelete","open","onClose","handleDelete","Dialog","CloseButton","Stack","Button","getLanguage","path","split","pop","toLowerCase","ext","DiffCard","diff","isExpanded","setIsExpanded","filePath","newPath","oldPath","language","additions","deletions","event","stopPropagation","ChevronDown","ChevronRight","t6","IconButton","t7","change","t8","t9","DiffBubble","t10","Grid","t11","newContent","oldContent","DiffEditor","t12","DiffDrawer","diffs","scrollRef","useRef","virtualizer","useVirtualizer","count","getScrollElement","current","estimateSize","overscan","ScrollArea","p","spaceY","EmptyState","height","getTotalSize","getVirtualItems","virtualItem","measureElement","transform","start","key","getEntryKey","entry","version","date","getChangeKey","ChangelogDate","Timeline","Flex","DocsChangelog","entries","description","Heading","_temp3","_temp","tag","Badge","_temp2","changeIndex","List","link","Link","entryIndex","base","md","tags","HStack","image","Image","changes","HEADING_REGEX","HEADING_SELECTOR","isHeadingLevelMatch","element","level","classList","contains","slugifyHeading","value","replace","extractHeadings","markdown","headings","headingIndex","match","matchAll","text","trim","id","push","matchHeadingElements","doc","elements","Array","from","querySelectorAll","elementsByHeadingId","Map","headingIdByElement","nextElementIndex","heading","elementIndex","elementText","textContent","set","DocsOutlineItem","isActive","emphasized","variant","onSelect","isLine","borderStartColor","color","DocsOutline","rootMargin","env","useEnvironmentContext","activeHeadingId","setActiveHeadingId","isMobileOpen","setIsMobileOpen","headingElementsMatchRef","extractedHeadings","useEffect","headingsForObserver","getDocument","win","getWindow","nextMatch","size","observer","IntersectionObserver","visibleEntries","filter","sort","target","nextActiveHeadingId","get","keys","observe","disconnect","activeHeading","find","headingId","headingElement","scrollIntoView","behavior","block","handleHeadingSelect","details","Icon","FileText","Fragment","t13","t14","t15","t16","t17","Collapsible","t18","heading_0","T0","t19","t20","t21","t22","t23","t24","t25","T1","t26","t27","heading_1","t28","t29","t30","isIntersecting","first","second","boundingClientRect","top","DocsPaginationLink","direction","isPrevious","directionText","ChevronLeft","href","DocsPagination","previous","next","ItemSection","defaultOpen","action","background","e","menuItemVariantStyles","default","paddingX","paddingY","minHeight","iconSize","primaryTextStyle","secondaryMarginLeft","secondaryTextStyle","compact","MenuItemContent","primaryLabel","tooltipLabel","secondaryLabel","leftIcon","leftSlot","rightIcon","leftIconColor","rightIconColor","leftIconSize","rightIconSize","rightIconAriaLabel","rightTooltipLabel","onRightIconClick","tagLabel","tagColorPalette","tagVariant","variantStyles","isRightIconInteractive","preventDefault","handleRightIconMouseDown","event_0","handleRightIconClick","placement","Tooltip","MenuItem","asChild","isDisabled","isSelected","tabIndex","maxWidth","setRefElement","onMouseDown","onMouseEnter","backgroundColor","resolvedLeftIconSize","resolvedRightIconSize","contentProps","bg","role","overflow","position","cursor","_hover","_focus","commonProps","bb0","child","Children","only","isValidElement","ChakraMenuItem","cloneElement","style","textDecoration","panelMenuVariantStyles","headerHeight","headerPadding","headerTextStyle","contentPadding","contentGap","PanelMenu","styles","DocsSidebarEntry","activeLink","onSelectLink","shouldStartOpen","hasChildren","Menu","DocsSidebar","emptyMessage","menuItems","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","console","handleReset","setState","onReset","render","fallback","label","ErrorFallback","message","AbsoluteCenter","getEntryIcon","isDirectory","isGitRepo","FolderOpen","Folder","FolderPickerListEntry","selectedPath","selectedPathSet","onEntryClick","has","isAlreadySelected","handleClick","name","FolderPickerDialog","currentPath","selectedPaths","isLoading","isSelectDisabled","onSelectHomeDirectory","onSelectParentDirectory","Set","Home","ChevronUp","padding","HorizontalMenuStack","getNoticeKey","notice","getNoticeTitle","OpenSourceNoticesScreen","notices","productName","productVersion","generatedAt","emptyTitle","emptyDescription","Separator","license","copyright","homepageUrl","sourceUrl","attribution","Properties","Info","resolveSessionIndicatorIcon","status","CircleCheck","CircleAlert","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","boxSize","ariaLabel","values","includes","SidebarActionButton","sectionId","nodeId","onAction","SidebarRowActions","actions","opacity","pointerEvents","SidebarNodeRow","node","expandedNodes","activeNodeId","onNavigate","onToggleNode","expanded","isNavigable","navigationIntent","paddingLeft","canLink","intent","transition","rowContent","className","justify","align","borderRadius","px","py","pl","rowStyles","childNode","SidebarTree","sections","expandedSections","onToggleSection","section","sectionExpanded","nodes","emptyState","DEFAULT_SNAPSHOT","SIDEBAR_STORE_NAMESPACE","toStorageName","storageKey","createNoopStorage","getItem","setItem","removeItem","toggleId","setExpanded","getPersistedSnapshot","createSidebarNextStore","options","initialState","snapshot","createStore","persist","openSidebar","closeSidebar","toggleSidebar","toggleSection","toggleNode","setSectionExpanded","setNodeExpanded","reset","storage","createJSONStorage","globalThis","localStorage","partialize","sidebarStoreRegistry","getSidebarNextStore","existingStore","store","useSidebarNextStore","selector","useStore","SidebarNextFooter","SidebarNextHeader","PanelLeftClose","SidebarNext","header","footer","closable","emptyLabel","onOpenChange","_temp4","_temp5","_temp6","state_0","state_1","state_2","state_3","state_4","Switch","thumbLabel","trackLabel","ChakraSwitch","off","on","SectionLabel","Dropdown","option","selectedLabel","option_0","DisplayMenu","settings","groupingOptions","orderingOptions","displayPropertyOptions","onViewModeChange","onColumnGroupingChange","onRowGroupingChange","onOrderingFieldChange","onSortDirectionToggle","onDisplayPropertyToggle","offset","mainAxis","Settings2","SegmentGroup","KanbanSquare","viewMode","rowGrouping","columnGrouping","o","ordering","field","ArrowDownUp","displayProperties","Popover","Portal","getActiveFilterCount","filters","Object","reduce","sum","FilterMenu","categories","countsByCategory","onToggleFilterValue","onClearFilter","onClearAll","activeCategoryId","setActiveCategoryId","category","activeCategory","activeFilterCount","Filter","category_0","selectedValues","checked","TicketCard","ticketId","parentPath","sessionIndicatorLabel","sessionIndicatorStatus","badges","diffAdditions","diffDeletions","draggable","onDragStart","onDragEnd","onDiffBadgeClick","onSessionIndicatorClick","handleDiffBadgeClick","handleSessionIndicatorClick","borderColor","boxShadow","join","GitBranchIcon","Wrap","badge","TicketBoard","columns","selectedItemId","onMoveItem","onMoveToGroup","onCreateStart","onColumnAction","activeColumn","setActiveColumn","activeGroup","setActiveGroup","handleDragStart","handleDragEnd","columnId","dataTransfer","dropEffect","handleDragOver","event_1","currentTarget","relatedTarget","handleDragLeave","columnId_0","event_2","itemId_0","getData","itemId","handleDrop","alignItems","gap","pb","minH","column","borderLeft","canDragIn","ColumnHeader","groups","group","groupId","GroupSection","canDragOut","event_3","event_4","event_5","itemId_1","cardProps","isDropTarget","onGroupDragOver","onGroupDragLeave","onGroupDrop","Spacer","canCreate","Plus","MoreHorizontal","setData","effectAllowed","v","cell","row","TicketCell","TicketList","onItemClick","table","useReactTable","data","onExpandedChange","getSubRows","getCoreRowModel","getExpandedRowModel","getRowId","getRowModel","rows","original","canExpand","getCanExpand","toggleExpanded","flexRender","getVisibleCells","columnDef","getContext","depth","ExpandToggle","TreeConnector","statusColor","statusIcon","assigneeIcon","getIsExpanded","FALLBACK_LABELS","complexity","assignee","priority","COMPLEXITY_RANK","high","medium","low","PRIORITY_RANK","p0","p1","p2","p3","p4","normalize","getGroupingValue","ticket","grouping","compareGroupKey","a","b","localeCompare","numeric","orderByDirection","orderTickets","tickets","left","Date","updatedAt","getTime","right","groupTickets","knownColumnKeys","groupedByColumn","columnKey","columnTickets","groupedByRow","rowKey","rowTickets","getTicketFilterValues","labels","filterTickets","activeFilters","every","some","countFilterValues","counts","DEFAULT_WORKSPACE_SETTINGS","DEFAULT_GROUPING_OPTIONS","DEFAULT_ORDERING_OPTIONS","DEFAULT_DISPLAY_PROPERTY_OPTIONS","WORKSPACE_STORE_NAMESPACE","toggleValue","createTicketsWorkspaceStore","setViewMode","setColumnGrouping","setRowGrouping","setOrdering","setOrderingField","toggleSortDirection","toggleDisplayProperty","property","setFilter","toggleFilterValue","currentValues","nextValues","nextFilters","clearFilter","clearAllFilters","workspaceStoreRegistry","getTicketsWorkspaceStore","useTicketsWorkspaceStore","PRIORITY_COLORS","COMPLEXITY_COLORS","toTitleCase","replaceAll","chunk","toUpperCase","slice","filterValueGetters","collectCategoryOptions","ticketValues","add","buildDefaultFilterCategories","toBadges","toLocaleDateString","TicketsWorkspace","selectedTicketId","filterCategories","knownColumnKeysProp","onTicketClick","onMoveTicket","onCreateTicket","getBoardColumnConfig","_temp7","_temp8","_temp9","_temp0","_temp1","categoryOptions","listItems","visibleTickets","fromEntries","c","_temp10","grouped","toListItem","ticket_0","toGroupListItem","ticket_1","group_0","tickets_0","ticket_2","toBoardItems","columnConfig","orderedTickets","row_0","boardColumns","state_5","state_6","state_7","state_8","state_9","toaster","createToaster","pauseOnPageIdle","Toaster","ChakraToaster","mdDown","toast","Toast","type","Spinner","applyThemePreference","theme","document","root","documentElement","body","opposite","el","remove","setAttribute","colorScheme","STORAGE_KEY","ThemePreferenceContext","createContext","getInitialThemePreference","window","stored","matchMedia","matches","ThemePreferenceProvider","initialPreference","themePreference","setThemePreference","toggleThemePreference","useThemePreference","context","useContext","Error","prev"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/alert.tsx","../src/components/breadcrumb.tsx","../src/components/checkbox.tsx","../src/components/code-editor.tsx","../src/components/content-placeholder.tsx","../src/components/delete-confirmation-modal.tsx","../src/components/diff-card.tsx","../src/components/diff-drawer.tsx","../src/components/documentation/docs-changelog.tsx","../src/components/documentation/docs-outline.tsx","../src/components/documentation/docs-pagination.tsx","../src/components/item-section.tsx","../src/components/menu-item.tsx","../src/components/panel-menu.tsx","../src/components/documentation/docs-sidebar.tsx","../src/components/error-boundary.tsx","../src/components/folder-picker-dialog.tsx","../src/components/horizontal-menu-stack.tsx","../src/components/open-source-notices-screen.tsx","../src/components/properties.tsx","../src/components/session-indicator.tsx","../src/components/sidebar-tree/sidebar-tree.tsx","../src/components/sidebar-next/sidebar-next.store.ts","../src/components/sidebar-next/sidebar-next-footer.tsx","../src/components/sidebar-next/sidebar-next-header.tsx","../src/components/sidebar-next/sidebar-next.tsx","../src/components/switch.tsx","../src/components/tickets/display-menu.tsx","../src/components/tickets/filter-menu.tsx","../src/components/tickets/ticket-card.tsx","../src/components/tickets/ticket-board.tsx","../src/components/tickets/ticket-list.tsx","../src/components/tickets/ticket-grouping.ts","../src/components/tickets/types.ts","../src/components/tickets/use-workspace-store.ts","../src/components/tickets/tickets-workspace.tsx","../src/components/toaster.tsx","../src/utils/apply-theme-preference.ts","../src/utils/theme-preference.tsx"],"sourcesContent":["import { Alert as ChakraAlert } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface AlertProps extends Omit<ChakraAlert.RootProps, \"title\"> {\n startElement?: React.ReactNode;\n endElement?: React.ReactNode;\n title?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\nexport const AlertMessage = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n const { title, children, icon, startElement, endElement, ...rest } = props;\n return (\n <ChakraAlert.Root ref={ref} {...rest}>\n {startElement || <ChakraAlert.Indicator>{icon}</ChakraAlert.Indicator>}\n {children ? (\n <ChakraAlert.Content>\n <ChakraAlert.Title>{title}</ChakraAlert.Title>\n <ChakraAlert.Description>{children}</ChakraAlert.Description>\n </ChakraAlert.Content>\n ) : (\n <ChakraAlert.Title flex=\"1\">{title}</ChakraAlert.Title>\n )}\n {endElement}\n </ChakraAlert.Root>\n );\n});\n","import { Breadcrumb as ChakraBreadcrumb, type SystemStyleObject } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface BreadcrumbItem {\n title: React.ReactNode;\n url?: string;\n onClick?: () => void;\n}\n\nexport interface BreadcrumbLinkProps {\n to: string;\n children: React.ReactNode;\n}\n\nexport interface BreadcrumbProps extends ChakraBreadcrumb.RootProps {\n separator?: React.ReactNode;\n separatorGap?: SystemStyleObject[\"gap\"];\n items: BreadcrumbItem[];\n linkComponent?: React.ComponentType<BreadcrumbLinkProps>;\n}\n\nexport const Breadcrumb = React.forwardRef<HTMLDivElement, BreadcrumbProps>(function BreadcrumbRoot(props, ref) {\n const { separator, separatorGap, items, linkComponent: LinkComponent, ...rest } = props;\n\n return (\n <ChakraBreadcrumb.Root ref={ref} {...rest}>\n <ChakraBreadcrumb.List gap={separatorGap}>\n {items.map((item, index) => {\n const last = index === items.length - 1;\n const isInteractive = Boolean(item.url || item.onClick);\n let itemContent: React.ReactNode;\n\n if (last && !isInteractive) {\n itemContent = <ChakraBreadcrumb.CurrentLink>{item.title}</ChakraBreadcrumb.CurrentLink>;\n } else if (item.url) {\n itemContent = LinkComponent ? (\n <ChakraBreadcrumb.Link asChild>\n <LinkComponent to={item.url}>{item.title}</LinkComponent>\n </ChakraBreadcrumb.Link>\n ) : (\n <ChakraBreadcrumb.Link href={item.url}>{item.title}</ChakraBreadcrumb.Link>\n );\n } else if (item.onClick) {\n itemContent = (\n <ChakraBreadcrumb.Link as=\"button\" type=\"button\" onClick={item.onClick}>\n {item.title}\n </ChakraBreadcrumb.Link>\n );\n } else {\n itemContent = <ChakraBreadcrumb.Link>{item.title}</ChakraBreadcrumb.Link>;\n }\n\n return (\n <ChakraBreadcrumb.Item key={index}>\n {itemContent}\n {last ? null : (\n <ChakraBreadcrumb.Separator as=\"span\" aria-hidden ml=\"xs\">\n {separator}\n </ChakraBreadcrumb.Separator>\n )}\n </ChakraBreadcrumb.Item>\n );\n })}\n </ChakraBreadcrumb.List>\n </ChakraBreadcrumb.Root>\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, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraCheckbox.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <ChakraCheckbox.Control borderRadius=\"xs\" cursor={interactiveCursor}>\n {icon || <ChakraCheckbox.Indicator />}\n </ChakraCheckbox.Control>\n {children != null && <ChakraCheckbox.Label cursor={interactiveCursor}>{children}</ChakraCheckbox.Label>}\n </ChakraCheckbox.Root>\n );\n});\n","import { DiffEditor, Editor } from \"@monaco-editor/react\";\n\nexport const customTheme = {\n base: \"vs-dark\" as const,\n inherit: true,\n rules: [],\n colors: {\n \"editor.background\": \"#0a0d15\",\n \"editor.foreground\": \"#f5f5f5\",\n \"editor.lineHighlightBackground\": \"#22252C\",\n \"editorCursor.foreground\": \"#A7A7A7\",\n \"editorWhitespace.foreground\": \"#3B3B3B\",\n \"editorIndentGuide.background\": \"#404040\",\n \"editorIndentGuide.activeBackground\": \"#707070\",\n },\n};\n\ninterface CodeEditorProps {\n language: string;\n defaultCode?: string;\n code?: string;\n isEditable: boolean;\n showLineNumbers?: boolean;\n onChange?: (code: string) => void;\n disableScroll?: boolean;\n}\n\nexport const CodeEditor = (props: CodeEditorProps) => {\n const { defaultCode, code, showLineNumbers, isEditable, language = \"javascript\", onChange, disableScroll } = props;\n\n const options = {\n tabSize: 2,\n minimap: {\n enabled: false,\n },\n fontSize: 12,\n readOnly: !isEditable,\n lineNumbers: showLineNumbers ? \"on\" : \"off\",\n ...(disableScroll\n ? {\n scrollbar: {\n vertical: \"hidden\" as const,\n horizontal: \"hidden\" as const,\n useShadows: false,\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n mouseWheelScrollSensitivity: 0,\n overviewRulerLanes: 0,\n }\n : {}),\n } as const;\n\n return (\n <Editor\n width=\"100%\"\n height=\"100%\"\n language={language}\n defaultValue={defaultCode}\n value={code}\n theme={\"ps-theme\"}\n options={options}\n onChange={(value) => {\n onChange?.(value || \"\");\n }}\n beforeMount={(monaco) => {\n monaco.editor.defineTheme(\"ps-theme\", customTheme);\n }}\n onMount={async (editor, monaco) => {\n monaco.editor.setTheme(\"ps-theme\");\n\n // Add JSX support\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n jsx: monaco.languages.typescript.JsxEmit.React,\n });\n\n // Format on cmd+s\n editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, async () => {\n await editor.getAction(\"editor.action.formatDocument\")?.run();\n });\n\n // Run format on the initial value\n await editor.getAction(\"editor.action.formatDocument\")?.run();\n }}\n />\n );\n};\n\ninterface CodeDiffEditorProps {\n language: string;\n original: string;\n modified: string;\n showLineNumbers?: boolean;\n disableScroll?: boolean;\n}\n\nexport const CodeDiffEditor = (props: CodeDiffEditorProps) => {\n const { original, modified, showLineNumbers, language = \"javascript\", disableScroll } = props;\n\n const options = {\n tabSize: 2,\n minimap: {\n enabled: false,\n },\n fontSize: 12,\n readOnly: true,\n originalEditable: false,\n renderSideBySide: true,\n useInlineViewWhenSpaceIsTooSmall: true,\n lineNumbers: showLineNumbers ? \"on\" : \"off\",\n ...(disableScroll\n ? {\n scrollbar: {\n vertical: \"hidden\" as const,\n horizontal: \"hidden\" as const,\n useShadows: false,\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n mouseWheelScrollSensitivity: 0,\n overviewRulerLanes: 0,\n }\n : {}),\n } as const;\n\n return (\n <DiffEditor\n width=\"100%\"\n height=\"100%\"\n language={language}\n original={original}\n modified={modified}\n theme={\"ps-theme\"}\n options={options}\n beforeMount={(monaco) => {\n monaco.editor.defineTheme(\"ps-theme\", customTheme);\n }}\n onMount={(_, monaco) => {\n monaco.editor.setTheme(\"ps-theme\");\n\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n jsx: monaco.languages.typescript.JsxEmit.React,\n });\n }}\n />\n );\n};\n","import { Box, type BoxProps, Text, type TextProps } from \"@chakra-ui/react\";\n\nexport interface ContentPlaceholderProps extends BoxProps {}\n\nexport const ContentPlaceholder = (props: ContentPlaceholderProps) => (\n <Box\n {...props}\n css={{\n backgroundClip: \"padding-box\",\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='0.2' fillRule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E\")`,\n display: \"flex\",\n width: \"100%\",\n }}\n />\n);\n\nexport const Label = (props: TextProps) => (\n <Box p=\"2\">\n <Text color=\"fg.muted\" fontWeight=\"medium\" textStyle=\"sm\" whiteSpace=\"nowrap\" {...props} />\n </Box>\n);\n","import { Button, CloseButton, Dialog, Stack, Text } from \"@chakra-ui/react\";\nimport { useState } from \"react\";\n\ninterface DeleteConfirmationModalProps {\n open: boolean;\n onClose: () => void;\n onDelete: () => void | Promise<void>;\n headline?: string;\n notificationText?: string;\n buttonText?: string;\n}\n\nexport type { DeleteConfirmationModalProps };\n\nexport const DeleteConfirmationModal = (props: DeleteConfirmationModalProps) => {\n const [isDeleting, setIsDeleting] = useState(false);\n const { headline, buttonText, notificationText, onDelete, open, onClose } = props;\n\n const handleDelete = async () => {\n setIsDeleting(true);\n\n try {\n await onDelete();\n onClose();\n } catch {\n // Errors surface through parent state.\n } finally {\n setIsDeleting(false);\n }\n };\n\n return (\n <Dialog.Root open={open} onOpenChange={onClose}>\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Text textStyle=\"heading/M\">{headline}</Text>\n <Dialog.CloseTrigger asChild>\n <CloseButton size=\"sm\" />\n </Dialog.CloseTrigger>\n </Dialog.Header>\n <Dialog.Body>{notificationText}</Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"1\">\n <Button onClick={onClose}>Close</Button>\n <Button loading={isDeleting} variant=\"solid\" colorPalette=\"red\" onClick={handleDelete}>\n {buttonText}\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { Box, Grid, IconButton, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { DiffEditor } from \"./diff-editor\";\n\nexport interface Diff {\n change: \"added\" | \"deleted\" | \"modified\" | \"renamed\" | \"copied\" | \"permissionChange\";\n oldPath?: string;\n newPath?: string;\n oldContent?: string;\n newContent?: string;\n additions?: number;\n deletions?: number;\n}\n\ninterface DiffCardProps {\n diff: Diff;\n}\n\nexport const DiffCard = (props: DiffCardProps) => {\n const { diff } = props;\n const [isExpanded, setIsExpanded] = useState(true);\n\n const filePath = diff.newPath || diff.oldPath || \"unknown\";\n\n const additions = diff.additions ?? 0;\n const deletions = diff.deletions ?? 0;\n\n return (\n <Box\n border=\"1px solid\"\n borderColor=\"border.muted\"\n borderRadius=\"xs\"\n overflow=\"hidden\"\n bg=\"bg\"\n width=\"100%\"\n maxW=\"100%\"\n >\n <Grid\n templateColumns=\"auto minmax(0, 1fr) auto\"\n px=\"xs\"\n py=\"2xs\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n borderBottom={isExpanded ? \"1px solid\" : \"none\"}\n borderColor=\"border.muted\"\n cursor=\"pointer\"\n onClick={() => setIsExpanded(!isExpanded)}\n gap=\"sm\"\n >\n <IconButton\n aria-label={isExpanded ? \"Collapse\" : \"Expand\"}\n variant=\"ghost\"\n size=\"2xs\"\n onClick={(event) => {\n event.stopPropagation();\n setIsExpanded(!isExpanded);\n }}\n flexShrink={0}\n >\n {isExpanded ? <ChevronDown size={16} /> : <ChevronRight size={16} />}\n </IconButton>\n\n <Box minW={0} overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" title={filePath}>\n {diff.change === \"renamed\" ? (\n <Text as=\"span\" textStyle=\"sm\">\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" mr=\"xs\">\n {diff.oldPath}\n </Text>\n <Box as=\"span\" display=\"inline-flex\" alignItems=\"center\" verticalAlign=\"middle\" mr=\"xs\">\n <ChevronRight size={12} />\n </Box>\n {diff.newPath}\n </Text>\n ) : diff.change === \"deleted\" ? (\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" textStyle=\"sm\">\n {filePath}\n </Text>\n ) : (\n <Text as=\"span\" textStyle=\"sm\">\n {filePath}\n </Text>\n )}\n </Box>\n\n <Box flexShrink={0}>\n <DiffBubble variant=\"ghost\" additions={additions} deletions={deletions} />\n </Box>\n </Grid>\n\n {isExpanded && (\n <Box bg=\"bg\">\n <DiffEditor\n original={diff.oldContent || \"\"}\n modified={diff.newContent || \"\"}\n oldPath={diff.oldPath}\n newPath={diff.newPath}\n sideBySide={false}\n />\n </Box>\n )}\n </Box>\n );\n};\n","import { Box, Stack } from \"@chakra-ui/react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { useRef } from \"react\";\nimport { type Diff, DiffCard } from \"./diff-card\";\nimport { EmptyState } from \"./empty-state\";\nimport { ScrollArea } from \"./scroll-area\";\n\ninterface DiffDrawerProps {\n diffs: Diff[];\n}\n\nexport type { Diff };\n\nexport function DiffDrawer(props: DiffDrawerProps) {\n const { diffs } = props;\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const virtualizer = useVirtualizer({\n count: diffs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => 42,\n overscan: 5,\n });\n\n if (diffs.length === 0) {\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: \"xs\", spaceY: \"xs\" }}>\n <EmptyState title=\"No changes detected\" description=\"Make some changes to see the diff here.\" paddingY=\"sm\" />\n </ScrollArea>\n </Stack>\n );\n }\n\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <Box position=\"relative\" flex=\"1\" minH=\"0\">\n <ScrollArea position=\"absolute\" inset=\"0\" viewportRef={scrollRef} contentProps={{ p: \"xs\" }}>\n <Box position=\"relative\" width=\"100%\" style={{ height: virtualizer.getTotalSize() }}>\n {virtualizer.getVirtualItems().map((virtualItem) => (\n <Box\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n width=\"100%\"\n pb=\"xs\"\n style={{ transform: `translateY(${virtualItem.start}px)` }}\n >\n <DiffCard diff={diffs[virtualItem.index]} />\n </Box>\n ))}\n </Box>\n </ScrollArea>\n </Box>\n </Stack>\n );\n}\n","import {\n Badge,\n Box,\n Flex,\n Heading,\n HStack,\n Image,\n Link,\n List,\n Stack,\n type StackProps,\n Text,\n Timeline,\n} from \"@chakra-ui/react\";\n\nexport interface DocsChangelogChange {\n title: string;\n description?: string;\n link?: string;\n}\n\nexport interface DocsChangelogEntry {\n version: string;\n date: string;\n tags?: string[];\n title: string;\n image?: string;\n description?: string;\n changes?: DocsChangelogChange[];\n}\n\nexport interface DocsChangelogProps {\n entries: DocsChangelogEntry[];\n title: string;\n description?: string;\n}\n\ninterface ChangelogDateProps extends StackProps {\n date: string;\n version: string;\n}\n\nconst getEntryKey = (entry: DocsChangelogEntry, index: number) => {\n return `${entry.version}-${entry.date}-${index}`;\n};\n\nconst getChangeKey = (change: DocsChangelogChange, index: number) => {\n return `${change.title}-${index}`;\n};\n\nconst ChangelogDate = (props: ChangelogDateProps) => {\n const { date, version, ...rest } = props;\n\n return (\n <Stack {...rest}>\n <Timeline.Title textStyle=\"sm\" color=\"fg.muted\">\n {date}\n </Timeline.Title>\n <Flex\n px=\"3\"\n py=\"2\"\n rounded=\"l3\"\n align=\"center\"\n justify=\"center\"\n borderWidth=\"1px\"\n textAlign=\"center\"\n alignSelf=\"flex-start\"\n >\n <Timeline.Title textStyle=\"md\" fontWeight=\"semibold\">\n {version}\n </Timeline.Title>\n </Flex>\n </Stack>\n );\n};\n\nexport const DocsChangelog = (props: DocsChangelogProps) => {\n const { entries, title, description } = props;\n\n return (\n <Stack gap=\"20\">\n <Stack textAlign=\"center\">\n <Heading size=\"4xl\">{title}</Heading>\n {description ? (\n <Text color=\"fg.muted\" textStyle=\"lg\">\n {description}\n </Text>\n ) : null}\n </Stack>\n\n <Box position=\"relative\">\n <Timeline.Root size=\"sm\" variant=\"solid\">\n {entries.map((entry, entryIndex) => (\n <Timeline.Item key={getEntryKey(entry, entryIndex)}>\n <Timeline.Content\n top=\"6\"\n width=\"48\"\n flexShrink=\"0\"\n hideBelow=\"md\"\n position={{ base: \"static\", md: \"sticky\" }}\n >\n <ChangelogDate hideBelow=\"md\" date={entry.date} version={entry.version} />\n </Timeline.Content>\n\n <Timeline.Connector>\n <Timeline.Separator />\n <Timeline.Indicator />\n </Timeline.Connector>\n\n <Timeline.Content>\n <Stack gap=\"4\">\n <ChangelogDate hideFrom=\"md\" date={entry.date} version={entry.version} />\n\n <Stack gap=\"2\">\n <Timeline.Title fontSize=\"lg\" fontWeight=\"medium\">\n {entry.title}\n </Timeline.Title>\n {entry.description ? (\n <Text color=\"fg.muted\" textStyle=\"sm\">\n {entry.description}\n </Text>\n ) : null}\n </Stack>\n\n {entry.tags && entry.tags.length > 0 ? (\n <HStack>\n {entry.tags.map((tag) => (\n <Badge\n key={tag}\n size=\"md\"\n rounded=\"l2\"\n variant=\"subtle\"\n colorPalette=\"gray\"\n textTransform=\"capitalize\"\n >\n {tag}\n </Badge>\n ))}\n </HStack>\n ) : null}\n\n {entry.image ? <Image rounded=\"l2\" src={entry.image} alt={entry.title} /> : null}\n\n {entry.changes && entry.changes.length > 0 ? (\n <List.Root pl=\"4\" gap=\"4\">\n {entry.changes.map((change, changeIndex) => (\n <List.Item key={getChangeKey(change, changeIndex)}>\n <Stack gap=\"1\">\n <Text color=\"fg.muted\" fontWeight=\"normal\" textStyle=\"sm\">\n {change.title}\n </Text>\n {change.description ? (\n <Text color=\"fg.subtle\" textStyle=\"xs\">\n {change.description}\n </Text>\n ) : null}\n {change.link ? (\n <Link href={change.link} textStyle=\"xs\" width=\"fit-content\">\n Learn more\n </Link>\n ) : null}\n </Stack>\n </List.Item>\n ))}\n </List.Root>\n ) : null}\n </Stack>\n </Timeline.Content>\n </Timeline.Item>\n ))}\n </Timeline.Root>\n </Box>\n </Stack>\n );\n};\n","import { Box, Collapsible, HStack, Icon, Stack, Text, useEnvironmentContext } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight, FileText } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\n\ninterface DocHeading {\n id: string;\n level: number;\n text: string;\n}\n\ninterface HeadingElementsMatch {\n elementsByHeadingId: Map<string, HTMLElement>;\n headingIdByElement: Map<HTMLElement, string>;\n}\n\nexport interface DocsOutlineProps {\n markdown: string;\n title?: string;\n rootMargin?: string;\n}\n\ninterface DocsOutlineItemProps {\n heading: DocHeading;\n isActive: boolean;\n emphasized: boolean;\n variant: \"line\" | \"minimal\";\n onSelect: (headingId: string) => void;\n}\n\nconst HEADING_REGEX = /^(#{1,3})\\s+(.+)$/gm;\nconst HEADING_SELECTOR = \".rich-text__h1, .rich-text__h2, .rich-text__h3\";\n\nconst isHeadingLevelMatch = (element: Element, level: number) => {\n return element.classList.contains(`rich-text__h${level}`);\n};\n\nconst slugifyHeading = (value: string) => {\n return value\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n};\n\nexport const extractHeadings = (markdown: string) => {\n const headings: DocHeading[] = [];\n let headingIndex = 0;\n\n for (const match of markdown.matchAll(HEADING_REGEX)) {\n const level = match[1]!.length;\n const text = match[2]!.trim();\n const slug = slugifyHeading(text);\n const id = `${slug || \"heading\"}-${headingIndex}`;\n\n headings.push({ id, level, text });\n headingIndex += 1;\n }\n\n return headings;\n};\n\nconst matchHeadingElements = (headings: DocHeading[], doc: Document) => {\n const elements = Array.from(doc.querySelectorAll(HEADING_SELECTOR));\n const elementsByHeadingId = new Map<string, HTMLElement>();\n const headingIdByElement = new Map<HTMLElement, string>();\n let nextElementIndex = 0;\n\n for (const heading of headings) {\n for (let elementIndex = nextElementIndex; elementIndex < elements.length; elementIndex += 1) {\n const element = elements[elementIndex] as HTMLElement;\n const elementText = element.textContent?.trim();\n\n if (!elementText || elementText !== heading.text) {\n continue;\n }\n\n if (!isHeadingLevelMatch(element, heading.level)) {\n continue;\n }\n\n elementsByHeadingId.set(heading.id, element);\n headingIdByElement.set(element, heading.id);\n nextElementIndex = elementIndex + 1;\n break;\n }\n }\n\n return { elementsByHeadingId, headingIdByElement };\n};\n\nconst DocsOutlineItem = (props: DocsOutlineItemProps) => {\n const { heading, isActive, emphasized, variant, onSelect } = props;\n const isLine = variant === \"line\";\n\n return (\n <Box\n as=\"button\"\n py=\"1.5\"\n px=\"0\"\n width=\"full\"\n display=\"flex\"\n textAlign=\"left\"\n textStyle=\"sm\"\n cursor=\"pointer\"\n textDecoration=\"none\"\n transition=\"all 0.15s ease\"\n paddingInlineStart={`calc(${heading.level} * 0.75rem)`}\n color={isActive ? \"fg\" : \"fg.muted\"}\n fontWeight={isActive || emphasized ? \"medium\" : \"normal\"}\n borderStartWidth={isLine ? \"1px\" : \"0px\"}\n borderStartColor={isLine ? (isActive ? \"fg\" : \"bg.muted\") : \"transparent\"}\n _hover={isLine ? { borderStartColor: \"bg.emphasized\" } : { color: \"fg\" }}\n onClick={() => onSelect(heading.id)}\n >\n {heading.text}\n </Box>\n );\n};\n\nexport const DocsOutline = (props: DocsOutlineProps) => {\n const { markdown, title = \"On this page\", rootMargin = \"-20% 0% -35% 0%\" } = props;\n const headings = extractHeadings(markdown);\n const env = useEnvironmentContext();\n const [activeHeadingId, setActiveHeadingId] = useState(headings[0]?.id ?? \"\");\n const [isMobileOpen, setIsMobileOpen] = useState(false);\n const headingElementsMatchRef = useRef<HeadingElementsMatch>({\n elementsByHeadingId: new Map(),\n headingIdByElement: new Map(),\n });\n\n useEffect(() => {\n const extractedHeadings = extractHeadings(markdown);\n setActiveHeadingId(extractedHeadings[0]?.id ?? \"\");\n }, [markdown]);\n\n useEffect(() => {\n const headingsForObserver = extractHeadings(markdown);\n const doc = env.getDocument();\n const win = env.getWindow();\n const nextMatch = matchHeadingElements(headingsForObserver, doc);\n\n headingElementsMatchRef.current = nextMatch;\n\n if (nextMatch.headingIdByElement.size === 0) {\n return;\n }\n\n const observer = new win.IntersectionObserver(\n (entries) => {\n const visibleEntries = entries\n .filter((entry) => entry.isIntersecting)\n .sort((first, second) => first.boundingClientRect.top - second.boundingClientRect.top);\n\n if (visibleEntries.length === 0) {\n return;\n }\n\n const target = visibleEntries[0]!.target as HTMLElement;\n const nextActiveHeadingId = nextMatch.headingIdByElement.get(target);\n\n if (nextActiveHeadingId) {\n setActiveHeadingId(nextActiveHeadingId);\n }\n },\n { rootMargin },\n );\n\n for (const element of nextMatch.headingIdByElement.keys()) {\n observer.observe(element);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [env, markdown, rootMargin]);\n\n if (headings.length === 0) {\n return null;\n }\n\n const activeHeading = headings.find((heading) => heading.id === activeHeadingId);\n\n const handleHeadingSelect = (headingId: string) => {\n const headingElement = headingElementsMatchRef.current.elementsByHeadingId.get(headingId);\n setActiveHeadingId(headingId);\n setIsMobileOpen(false);\n headingElement?.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n };\n\n return (\n <Stack gap=\"0\" width=\"full\">\n <Box hideFrom=\"md\" px=\"4\" py=\"2\" w=\"full\" bg=\"bg.subtle\" borderWidth=\"1px\">\n <Collapsible.Root open={isMobileOpen} onOpenChange={(details) => setIsMobileOpen(details.open)}>\n <Collapsible.Trigger width=\"full\" display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <HStack>\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" fontWeight=\"medium\" color=\"fg\">\n {title}\n </Text>\n {!isMobileOpen ? (\n <>\n <Icon as={ChevronRight} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" color=\"fg.muted\">\n {activeHeading?.text}\n </Text>\n </>\n ) : null}\n </HStack>\n <Box transition=\"transform 0.2s\" transform={isMobileOpen ? \"rotate(180deg)\" : \"rotate(0deg)\"}>\n <Icon as={ChevronDown} color=\"fg.subtle\" />\n </Box>\n </Collapsible.Trigger>\n\n <Collapsible.Content>\n <ScrollArea mt=\"3\" maxH=\"30vh\">\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"minimal\"\n emphasized={false}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Collapsible.Content>\n </Collapsible.Root>\n </Box>\n\n <ScrollArea hideBelow=\"md\" top=\"6\" width=\"xs\" position=\"sticky\" maxH=\"calc(100vh - 3rem)\">\n <HStack mb=\"4\">\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text fontWeight=\"medium\" textStyle=\"sm\">\n {title}\n </Text>\n </HStack>\n\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"line\"\n emphasized={heading.level === 1}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Stack>\n );\n};\n","import { Box, Button, HStack, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nexport interface DocsPaginationItem {\n href: string;\n title: string;\n description?: string;\n}\n\nexport interface DocsPaginationProps {\n previous?: DocsPaginationItem;\n next?: DocsPaginationItem;\n}\n\ninterface DocsPaginationLinkProps {\n item: DocsPaginationItem;\n direction: \"prev\" | \"next\";\n}\n\nconst DocsPaginationLink = (props: DocsPaginationLinkProps) => {\n const { item, direction } = props;\n const isPrevious = direction === \"prev\";\n const directionText = isPrevious ? \"Previous\" : \"Next\";\n\n return (\n <Button\n asChild\n variant=\"ghost\"\n colorPalette=\"gray\"\n gap=\"3\"\n size=\"sm\"\n h=\"auto\"\n py=\"2\"\n textAlign={isPrevious ? \"start\" : \"end\"}\n justifyContent={isPrevious ? \"flex-start\" : \"flex-end\"}\n flex=\"1\"\n >\n <a href={item.href}>\n {isPrevious ? <ChevronLeft size={16} /> : null}\n <Stack gap=\"0\" alignItems={isPrevious ? \"flex-start\" : \"flex-end\"}>\n <Text textStyle=\"sm\" color=\"fg.muted\" fontWeight=\"normal\">\n {directionText}\n </Text>\n <Text textStyle=\"sm\" fontWeight=\"medium\">\n {item.title}\n </Text>\n {item.description ? (\n <Text textStyle=\"xs\" color=\"fg.subtle\" fontWeight=\"normal\">\n {item.description}\n </Text>\n ) : null}\n </Stack>\n {isPrevious ? null : <ChevronRight size={16} />}\n </a>\n </Button>\n );\n};\n\nexport const DocsPagination = (props: DocsPaginationProps) => {\n const { previous, next } = props;\n\n if (!previous && !next) {\n return null;\n }\n\n return (\n <HStack justify=\"space-between\" gap=\"4\">\n <Box flex=\"1\">{previous ? <DocsPaginationLink item={previous} direction=\"prev\" /> : null}</Box>\n <Box flex=\"1\">{next ? <DocsPaginationLink item={next} direction=\"next\" /> : null}</Box>\n </HStack>\n );\n};\n","import { Box, Collapsible, Flex, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nexport interface ItemSectionProps {\n children: ReactNode;\n title?: string;\n defaultOpen?: boolean;\n action?: ReactNode;\n}\n\n/**\n * A collapsible section wrapper with a title trigger and optional action.\n */\nexport const ItemSection = (props: ItemSectionProps) => {\n const { children, title, defaultOpen = true, action } = props;\n\n return (\n <Collapsible.Root defaultOpen={defaultOpen} width=\"full\">\n <Flex>\n <Collapsible.Trigger\n _hover={{\n background: \"bg.muted\",\n }}\n borderRadius={\"xs\"}\n padding=\"sm\"\n height=\"2rem\"\n display=\"flex\"\n width=\"full\"\n gap=\"2\"\n alignItems=\"center\"\n cursor=\"pointer\"\n justifyContent=\"space-between\"\n >\n {title && (\n <Text fontWeight=\"600\" textStyle=\"label/S/medium\">\n {title}\n </Text>\n )}\n <Collapsible.Indicator transition=\"transform 0.2s\" _open={{ transform: \"rotate(90deg)\" }}>\n <ChevronRight size={16} />\n </Collapsible.Indicator>\n </Collapsible.Trigger>\n {action && (\n <Box marginLeft=\"auto\" onClick={(e) => e.stopPropagation()}>\n {action}\n </Box>\n )}\n </Flex>\n <Collapsible.Content>{children}</Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import type { IconProps } from \"@chakra-ui/react\";\nimport { Badge, MenuItem as ChakraMenuItem, Flex, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport {\n Children,\n type ComponentProps,\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\ntype ChakraMenuItemProps = ComponentProps<typeof ChakraMenuItem>;\ntype MenuItemIcon = ComponentProps<typeof Icon>[\"as\"];\ntype MenuItemIconColor = IconProps[\"color\"];\ntype MenuItemTagColor = ComponentProps<typeof Badge>[\"colorPalette\"];\ntype MenuItemTagVariant = ComponentProps<typeof Badge>[\"variant\"];\ntype MenuItemVariant = \"default\" | \"compact\";\n\nconst menuItemVariantStyles = {\n default: {\n paddingX: \"sm\",\n paddingY: \"xs\",\n minHeight: \"2rem\",\n iconSize: \"19px\",\n primaryTextStyle: \"label/M/regular\",\n secondaryMarginLeft: \"2px\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n compact: {\n paddingX: \"xs\",\n paddingY: \"2xs\",\n minHeight: \"1.75rem\",\n iconSize: \"16px\",\n primaryTextStyle: \"label/S/regular\",\n secondaryMarginLeft: \"0\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n} as const;\n\ninterface MenuItemContentProps {\n primaryLabel: string;\n secondaryLabel?: string;\n tooltipLabel?: ReactNode;\n leftIcon?: MenuItemIcon | null;\n leftSlot?: ReactNode;\n rightIcon?: MenuItemIcon | null;\n leftIconColor: MenuItemIconColor;\n rightIconColor: MenuItemIconColor;\n leftIconSize: string;\n rightIconSize: string;\n rightIconAriaLabel?: string;\n rightTooltipLabel?: ReactNode;\n onRightIconClick?: () => void;\n tagLabel?: ReactNode;\n tagColorPalette: MenuItemTagColor;\n tagVariant: MenuItemTagVariant;\n variant: MenuItemVariant;\n}\n\nconst MenuItemContent = (props: MenuItemContentProps) => {\n const {\n primaryLabel,\n tooltipLabel,\n secondaryLabel,\n leftIcon,\n leftSlot,\n rightIcon,\n leftIconColor,\n rightIconColor,\n leftIconSize,\n rightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n tagLabel,\n tagColorPalette,\n tagVariant,\n variant,\n } = props;\n\n const variantStyles = menuItemVariantStyles[variant];\n const isRightIconInteractive = Boolean(onRightIconClick && rightIcon);\n\n const handleRightIconMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive) return;\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleRightIconClick = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive || !onRightIconClick) return;\n event.preventDefault();\n event.stopPropagation();\n onRightIconClick();\n };\n\n return (\n <>\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap=\"xs\" flex=\"1\">\n <Tooltip positioning={{ placement: \"right\" }} content={tooltipLabel} disabled={!tooltipLabel}>\n <Stack gap=\"2xs\">\n <Flex alignItems=\"flex-start\" gap=\"xs\" flex=\"1\">\n {leftSlot ? (\n leftSlot\n ) : leftIcon ? (\n <Icon as={leftIcon} boxSize={leftIconSize} color={leftIconColor} />\n ) : null}\n <Text lineClamp={1} textOverflow=\"ellipsis\" textStyle={variantStyles.primaryTextStyle}>\n {primaryLabel}\n </Text>\n </Flex>\n {secondaryLabel && (\n <Text\n ml={variantStyles.secondaryMarginLeft}\n lineClamp={1}\n textOverflow=\"ellipsis\"\n textStyle={variantStyles.secondaryTextStyle}\n color=\"fg.menu-item.secondary\"\n >\n {secondaryLabel}\n </Text>\n )}\n </Stack>\n </Tooltip>\n <Flex justifyContent=\"flex-end\" color=\"fg.menu-item.default\">\n {rightIcon ? (\n <Tooltip positioning={{ placement: \"right\" }} content={rightTooltipLabel} disabled={!rightTooltipLabel}>\n <Flex\n as={isRightIconInteractive ? \"button\" : \"div\"}\n alignItems=\"center\"\n aria-label={rightIconAriaLabel}\n cursor={isRightIconInteractive ? \"pointer\" : \"default\"}\n bg=\"transparent\"\n borderWidth=\"0\"\n padding=\"0\"\n onMouseDown={handleRightIconMouseDown}\n onClick={handleRightIconClick}\n >\n <Icon as={rightIcon} boxSize={rightIconSize} color={rightIconColor} />\n </Flex>\n </Tooltip>\n ) : null}\n </Flex>\n </Flex>\n {tagLabel ? (\n <Badge\n position=\"absolute\"\n top=\"xs\"\n right=\"sm\"\n textStyle=\"label/XS/medium\"\n px=\"xs\"\n py=\"2px\"\n borderRadius=\"md\"\n colorPalette={tagColorPalette}\n variant={tagVariant}\n pointerEvents=\"none\"\n >\n {tagLabel}\n </Badge>\n ) : null}\n </>\n );\n};\n\nexport interface MenuItemProps {\n id?: string;\n children?: ReactNode;\n /** When true, the single child element becomes the root element (e.g. a Link for cmd+click support). */\n asChild?: boolean;\n isDisabled?: boolean;\n isSelected?: boolean;\n primaryLabel: string;\n secondaryLabel?: string;\n tooltipLabel?: ReactNode;\n leftIcon?: MenuItemIcon | null;\n leftSlot?: ReactNode;\n rightIcon?: MenuItemIcon | null;\n leftIconColor?: MenuItemIconColor;\n rightIconColor?: MenuItemIconColor;\n leftIconSize?: string;\n rightIconSize?: string;\n rightIconAriaLabel?: string;\n rightTooltipLabel?: ReactNode;\n onRightIconClick?: () => void;\n tagLabel?: ReactNode;\n tagColorPalette?: MenuItemTagColor;\n tagVariant?: MenuItemTagVariant;\n variant?: MenuItemVariant;\n tabIndex?: number;\n width?: ChakraMenuItemProps[\"width\"];\n maxWidth?: ChakraMenuItemProps[\"maxWidth\"];\n setRefElement?: ChakraMenuItemProps[\"ref\"];\n onClick?: ChakraMenuItemProps[\"onClick\"];\n onMouseDown?: ChakraMenuItemProps[\"onMouseDown\"];\n onMouseEnter?: ChakraMenuItemProps[\"onMouseEnter\"];\n}\n\nexport const MenuItem = (props: MenuItemProps) => {\n const {\n id,\n children,\n asChild,\n primaryLabel,\n tooltipLabel,\n secondaryLabel,\n leftIcon = null,\n leftSlot,\n rightIcon,\n leftIconColor = \"fg.menu-item.default\",\n rightIconColor = \"fg.menu-item.default\",\n leftIconSize,\n rightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n isDisabled,\n isSelected,\n tagLabel,\n tagColorPalette = \"yellow\",\n tagVariant = \"subtle\",\n variant = \"default\",\n tabIndex,\n width,\n maxWidth,\n setRefElement,\n } = props;\n const { onClick, onMouseDown, onMouseEnter } = props;\n const variantStyles = menuItemVariantStyles[variant];\n const backgroundColor = isSelected ? \"bg.menu-item.selected\" : \"bg.menu-item.default\";\n const resolvedLeftIconSize = leftIconSize ?? variantStyles.iconSize;\n const resolvedRightIconSize = rightIconSize ?? variantStyles.iconSize;\n\n const contentProps: MenuItemContentProps = {\n primaryLabel,\n secondaryLabel,\n tooltipLabel,\n leftIcon,\n leftSlot,\n rightIcon,\n leftIconColor,\n rightIconColor,\n leftIconSize: resolvedLeftIconSize,\n rightIconSize: resolvedRightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n tagLabel,\n tagColorPalette,\n tagVariant,\n variant,\n };\n\n const commonProps = {\n id,\n ref: setRefElement,\n tabIndex,\n disabled: isDisabled,\n \"aria-selected\": isSelected,\n paddingX: variantStyles.paddingX,\n paddingY: variantStyles.paddingY,\n height: \"auto\" as const,\n minHeight: variantStyles.minHeight,\n role: \"option\" as const,\n width,\n maxWidth: maxWidth ?? \"20rem\",\n overflow: \"hidden\" as const,\n position: \"relative\" as const,\n cursor: isDisabled ? (\"default\" as const) : (\"pointer\" as const),\n value: id ?? primaryLabel,\n bg: backgroundColor,\n _hover: { bg: \"bg.menu-item.hover\" },\n _focus: { bg: \"bg.menu-item.focus\" },\n textDecoration: \"none\",\n color: \"inherit\",\n };\n\n if (asChild && children) {\n const child = Children.only(children);\n if (!isValidElement<HTMLAttributes<HTMLElement>>(child)) return null;\n\n return (\n <ChakraMenuItem asChild {...commonProps}>\n {cloneElement(child, undefined, <MenuItemContent {...contentProps} />)}\n </ChakraMenuItem>\n );\n }\n\n return (\n <ChakraMenuItem {...commonProps} onClick={onClick} onMouseDown={onMouseDown} onMouseEnter={onMouseEnter}>\n <MenuItemContent {...contentProps} />\n </ChakraMenuItem>\n );\n};\n","import { Flex, Stack, Text } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { ScrollArea } from \"./scroll-area\";\n\ntype PanelMenuVariant = \"default\" | \"compact\";\n\nconst panelMenuVariantStyles = {\n default: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"xs\" as const,\n contentGap: \"xs\" as const,\n },\n compact: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"2xs\" as const,\n contentGap: \"2xs\" as const,\n },\n} as const;\n\ninterface PanelMenuProps {\n title: string;\n children?: ReactNode;\n variant?: PanelMenuVariant;\n}\n\nexport function PanelMenu(props: PanelMenuProps) {\n const { title, children, variant = \"default\" } = props;\n const styles = panelMenuVariantStyles[variant];\n\n return (\n <Stack borderRightWidth=\"1px\" width={styles.width} gap=\"0\" minH=\"0\">\n {title && (\n <Flex height={styles.headerHeight} p={styles.headerPadding} borderBottomWidth=\"1px\" alignItems=\"center\">\n <Text pb=\"0\" textStyle={styles.headerTextStyle} color=\"fg.muted\">\n {title}\n </Text>\n </Flex>\n )}\n\n {children && (\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: styles.contentPadding, spaceY: styles.contentGap }}>\n {children}\n </ScrollArea>\n )}\n </Stack>\n );\n}\n","import { Menu, Text } from \"@chakra-ui/react\";\nimport { ItemSection } from \"../item-section\";\nimport { MenuItem } from \"../menu-item\";\nimport { PanelMenu } from \"../panel-menu\";\n\nexport interface DocsSidebarItem {\n text: string;\n link?: string;\n items?: DocsSidebarItem[];\n}\n\ninterface DocsSidebarEntryProps {\n item: DocsSidebarItem;\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nexport interface DocsSidebarProps {\n title: string;\n emptyMessage?: string;\n menuItems: DocsSidebarItem[];\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nconst DocsSidebarEntry = (props: DocsSidebarEntryProps) => {\n const { item, activeLink, onSelectLink, shouldStartOpen } = props;\n const children = item.items ?? [];\n const hasChildren = children.length > 0;\n\n if (!hasChildren && item.link) {\n const link = item.link;\n const isActive = item.link === activeLink;\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isSelected={isActive} variant=\"compact\" onClick={() => onSelectLink(link)} />\n </Menu.Root>\n );\n }\n\n if (!hasChildren) {\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isDisabled variant=\"compact\" />\n </Menu.Root>\n );\n }\n\n const defaultOpen = shouldStartOpen?.(item) ?? false;\n\n return (\n <ItemSection title={item.text} defaultOpen={defaultOpen}>\n {children.map((child, index) => (\n <DocsSidebarEntry\n key={`${child.text}-${child.link ?? index}`}\n item={child}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))}\n </ItemSection>\n );\n};\n\nexport const DocsSidebar = (props: DocsSidebarProps) => {\n const { title, emptyMessage, menuItems, activeLink, onSelectLink, shouldStartOpen } = props;\n\n return (\n <PanelMenu title={title} variant=\"compact\">\n {menuItems.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"xs\">\n {emptyMessage ?? \"No files found\"}\n </Text>\n ) : (\n menuItems.map((item, index) => (\n <DocsSidebarEntry\n key={`${item.text}-${item.link ?? index}`}\n item={item}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))\n )}\n </PanelMenu>\n );\n};\n","import { AbsoluteCenter, Button, Stack, Text } from \"@chakra-ui/react\";\nimport { Component, type ErrorInfo, type ReactNode } from \"react\";\n\nimport { AlertMessage } from \"./alert\";\nimport { ContentPlaceholder } from \"./content-placeholder\";\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: ReactNode;\n label?: string;\n onReset?: () => void;\n}\n\ninterface ErrorBoundaryState {\n error: Error | null;\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { error: null };\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo) {\n console.error(\"Dashboard error boundary caught an error\", error, info);\n }\n\n handleReset = () => {\n this.setState({ error: null });\n this.props.onReset?.();\n };\n\n render() {\n const { children, fallback, label } = this.props;\n const { error } = this.state;\n\n if (error) {\n if (fallback) {\n return fallback;\n }\n\n return <ErrorFallback error={error} label={label} onReset={this.handleReset} />;\n }\n\n return children;\n }\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n label?: string;\n onReset?: () => void;\n}\n\nexport const ErrorFallback = (props: ErrorFallbackProps) => {\n const { error, label, onReset } = props;\n\n return (\n <ContentPlaceholder height=\"100%\" width=\"100%\">\n <AbsoluteCenter>\n <AlertMessage\n status=\"error\"\n title={<Text textStyle=\"paragraph/M/medium\">{label ?? \"Something went wrong\"}</Text>}\n >\n <Stack gap=\"sm\">\n <Text textStyle=\"paragraph/S/regular\">\n {error.message || \"An unexpected error occurred while rendering this section.\"}\n </Text>\n {onReset ? (\n <Button size=\"sm\" variant=\"solid\" colorScheme={\"black\"} onClick={onReset}>\n Try again\n </Button>\n ) : null}\n </Stack>\n </AlertMessage>\n </AbsoluteCenter>\n </ContentPlaceholder>\n );\n};\n","import { Button, Dialog, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronUp, FileText, Folder, FolderOpen, Home } from \"lucide-react\";\nimport { MenuItem } from \"./menu-item\";\nimport { ScrollArea } from \"./scroll-area\";\n\nexport interface FolderPickerDialogEntry {\n name: string;\n path: string;\n isDirectory: boolean;\n isGitRepo: boolean;\n}\n\ninterface FolderPickerDialogProps {\n open: boolean;\n title?: string;\n description?: string;\n currentPath?: string;\n entries: FolderPickerDialogEntry[];\n selectedPath?: string | null;\n selectedPaths?: string[];\n isLoading?: boolean;\n error?: string;\n isSelectDisabled?: boolean;\n onClose: () => void;\n onSelect: () => void;\n onSelectHomeDirectory: () => void;\n onSelectParentDirectory: () => void;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n}\n\nexport type { FolderPickerDialogProps };\n\nconst getEntryIcon = (entry: FolderPickerDialogEntry) => {\n if (!entry.isDirectory) return FileText;\n if (entry.isGitRepo) return FolderOpen;\n return Folder;\n};\n\ntype FolderPickerListEntryProps = {\n entry: FolderPickerDialogEntry;\n selectedPath: string | null;\n selectedPathSet: Set<string>;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n};\n\nconst FolderPickerListEntry = (props: FolderPickerListEntryProps) => {\n const { entry, selectedPath, selectedPathSet, onEntryClick } = props;\n const isAlreadySelected = entry.isGitRepo && selectedPathSet.has(entry.path);\n const isDisabled = !entry.isDirectory || isAlreadySelected;\n\n const handleClick = () => {\n if (isAlreadySelected) {\n return;\n }\n\n onEntryClick(entry);\n };\n\n return (\n <Menu.Root>\n <MenuItem\n primaryLabel={entry.name}\n leftIcon={getEntryIcon(entry)}\n tagLabel={entry.isGitRepo ? \"Git repo\" : undefined}\n tagColorPalette={entry.isGitRepo ? \"green\" : undefined}\n isDisabled={isDisabled}\n isSelected={selectedPath === entry.path}\n width=\"100%\"\n maxWidth=\"100%\"\n onClick={handleClick}\n />\n </Menu.Root>\n );\n};\n\nexport const FolderPickerDialog = (props: FolderPickerDialogProps) => {\n const {\n open,\n title = \"Select folder\",\n description,\n currentPath = \"\",\n entries,\n selectedPath = null,\n selectedPaths = [],\n isLoading = false,\n error = \"\",\n isSelectDisabled = false,\n onClose,\n onSelect,\n onSelectHomeDirectory,\n onSelectParentDirectory,\n onEntryClick,\n } = props;\n\n const selectedPathSet = new Set(selectedPaths);\n\n return (\n <Dialog.Root\n lazyMount\n unmountOnExit\n closeOnInteractOutside={false}\n open={open}\n onOpenChange={(details) => !details.open && onClose()}\n >\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/M\">{title}</Text>\n {description ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n ) : null}\n </Stack>\n </Dialog.Header>\n <Dialog.Body>\n <Stack gap=\"md\">\n <Stack direction=\"row\" gap=\"sm\" align=\"center\">\n <Button aria-label=\"Go to home directory\" variant=\"outline\" size=\"sm\" onClick={onSelectHomeDirectory}>\n <Home size={16} />\n </Button>\n <Button\n aria-label=\"Go to parent directory\"\n variant=\"outline\"\n size=\"sm\"\n onClick={onSelectParentDirectory}\n disabled={!currentPath || currentPath === \"/\"}\n >\n <ChevronUp size={16} />\n </Button>\n <Text\n data-testid=\"folder-picker-path\"\n textStyle=\"paragraph/S/regular\"\n color=\"fg.muted\"\n flex=\"1\"\n lineClamp={1}\n >\n {currentPath || \"Home\"}\n </Text>\n </Stack>\n\n <ScrollArea\n borderWidth=\"1px\"\n borderRadius=\"md\"\n borderColor=\"border.muted\"\n maxHeight=\"320px\"\n contentProps={{ padding: \"sm\" }}\n >\n {isLoading ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n Loading...\n </Text>\n ) : error ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"red.500\">\n {error}\n </Text>\n ) : entries.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n No entries found.\n </Text>\n ) : (\n <Stack gap=\"xs\">\n {entries.map((entry) => (\n <FolderPickerListEntry\n key={entry.path}\n entry={entry}\n selectedPath={selectedPath}\n selectedPathSet={selectedPathSet}\n onEntryClick={onEntryClick}\n />\n ))}\n </Stack>\n )}\n </ScrollArea>\n </Stack>\n </Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"sm\">\n <Button variant=\"outline\" onClick={onClose}>\n Cancel\n </Button>\n <Button onClick={onSelect} disabled={isSelectDisabled}>\n Select repository\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { HStack, type StackProps } from \"@chakra-ui/react\";\n\ninterface HorizontalMenuStackProps extends StackProps {\n children?: StackProps[\"children\"];\n}\n\nexport function HorizontalMenuStack(props: HorizontalMenuStackProps) {\n const { children, ...rest } = props;\n\n return (\n <HStack {...rest} minH=\"49px\" justify=\"space-between\" align=\"center\" borderBottomWidth=\"1px\" p=\"xs\">\n {children}\n </HStack>\n );\n}\n","import { Box, HStack, Link, Separator, Stack, Text } from \"@chakra-ui/react\";\n\nexport interface OpenSourceNotice {\n name: string;\n version?: string;\n license?: string;\n copyright?: string;\n homepageUrl?: string;\n sourceUrl?: string;\n attribution?: string;\n}\n\nexport interface OpenSourceNoticesScreenProps {\n notices: OpenSourceNotice[];\n title?: string;\n description?: string;\n productName?: string;\n productVersion?: string;\n generatedAt?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n}\n\nconst getNoticeKey = (notice: OpenSourceNotice, index: number) => {\n return `${notice.name}-${notice.version ?? \"unknown\"}-${index}`;\n};\n\nconst getNoticeTitle = (notice: OpenSourceNotice) => {\n if (!notice.version) return notice.name;\n\n return `${notice.name} v${notice.version}`;\n};\n\nexport const OpenSourceNoticesScreen = (props: OpenSourceNoticesScreenProps) => {\n const {\n notices,\n title = \"Open Source and Third-Party Notices\",\n description = \"This product includes software developed by the open source community.\",\n productName,\n productVersion,\n generatedAt,\n emptyTitle = \"No third-party notices available\",\n emptyDescription = \"No third-party packages were included in this build.\",\n } = props;\n\n return (\n <Stack width=\"full\" minHeight=\"100%\" background=\"bg\" color=\"fg\" padding={{ base: \"md\", md: \"xl\" }} gap=\"lg\">\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/L\">{title}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n\n <HStack gap=\"md\" flexWrap=\"wrap\">\n {productName ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Product: {productName}\n </Text>\n ) : null}\n\n {productVersion ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Version: {productVersion}\n </Text>\n ) : null}\n\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Packages: {notices.length}\n </Text>\n\n {generatedAt ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Generated: {generatedAt}\n </Text>\n ) : null}\n </HStack>\n </Stack>\n\n <Separator borderColor=\"border.muted\" />\n\n {notices.length === 0 ? (\n <Stack borderWidth=\"1px\" borderColor=\"border.muted\" borderRadius=\"md\" padding=\"lg\" gap=\"xs\">\n <Text textStyle=\"label/L/medium\">{emptyTitle}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {emptyDescription}\n </Text>\n </Stack>\n ) : (\n <Stack gap=\"md\">\n {notices.map((notice, index) => (\n <Box\n key={getNoticeKey(notice, index)}\n borderWidth=\"1px\"\n borderColor=\"border.muted\"\n borderRadius=\"md\"\n padding=\"md\"\n >\n <Stack gap=\"sm\">\n <Stack gap=\"2xs\">\n <Text textStyle=\"label/L/medium\">{getNoticeTitle(notice)}</Text>\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n License: {notice.license ?? \"Unknown\"}\n </Text>\n </Stack>\n\n {notice.copyright ? (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n {notice.copyright}\n </Text>\n ) : null}\n\n {(notice.homepageUrl || notice.sourceUrl) && (\n <Stack gap=\"2xs\">\n {notice.homepageUrl ? (\n <Link\n href={notice.homepageUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Homepage\n </Link>\n ) : null}\n\n {notice.sourceUrl ? (\n <Link\n href={notice.sourceUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Source code\n </Link>\n ) : null}\n </Stack>\n )}\n\n {notice.attribution ? (\n <Box background=\"bg.muted\" borderRadius=\"sm\" padding=\"sm\">\n <Text textStyle=\"label/S/regular\" whiteSpace=\"pre-wrap\">\n {notice.attribution}\n </Text>\n </Box>\n ) : null}\n </Stack>\n </Box>\n ))}\n </Stack>\n )}\n </Stack>\n );\n};\n","import { Box, HStack, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport { Info } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\nexport interface PropertyItem {\n label: string;\n description?: string;\n value: ReactNode;\n}\n\nexport interface PropertiesProps {\n items: PropertyItem[];\n}\n\n/**\n * Displays a list of label–value property rows.\n *\n * Each property has a label, an optional description (shown as a tooltip), and a value (ReactNode).\n * All labels share a fixed width for alignment.\n *\n * Wrap with `<ItemSection>` when collapsible behavior is needed.\n */\nexport const Properties = (props: PropertiesProps) => {\n const { items } = props;\n\n return (\n <Stack gap=\"sm\" paddingLeft=\"sm\" paddingY=\"xs\">\n {items.map((item, index) => (\n <HStack key={`${item.label}-${index}`} gap=\"md\" alignItems=\"center\">\n <Box width=\"140px\" flexShrink={0}>\n <HStack gap=\"1\" alignItems=\"center\">\n <Text textStyle=\"label/S/medium\" color=\"fg.muted\">\n {item.label}\n </Text>\n {item.description && (\n <Tooltip content={item.description} showArrow>\n <Icon as={Info} boxSize=\"12px\" color=\"fg.muted\" opacity={0.6} cursor=\"help\" />\n </Tooltip>\n )}\n </HStack>\n </Box>\n <Box flex=\"1\">{item.value}</Box>\n </HStack>\n ))}\n </Stack>\n );\n};\n","import { Icon } from \"@chakra-ui/react\";\nimport { CircleAlert, CircleCheck, CircleDashed } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nexport type SessionCompletionStatus = \"in_progress\" | \"awaiting_input\" | \"completed\" | \"failed\";\n\nexport const resolveSessionIndicatorIcon = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return CircleCheck;\n if (status === \"failed\") return CircleAlert;\n return CircleDashed;\n};\n\nexport const resolveSessionIndicatorColor = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return \"fg.success\";\n if (status === \"failed\") return \"fg.error\";\n return \"fg.muted\";\n};\n\ninterface SessionIndicatorProps {\n status?: SessionCompletionStatus;\n boxSize?: ComponentProps<typeof Icon>[\"boxSize\"];\n ariaLabel?: string;\n cursor?: ComponentProps<typeof Icon>[\"cursor\"];\n onClick?: ComponentProps<typeof Icon>[\"onClick\"];\n}\n\nexport const SessionIndicator = (props: SessionIndicatorProps) => {\n const { status, boxSize = \"14px\", ariaLabel = \"Session status\", cursor, onClick } = props;\n\n return (\n <Icon\n as={resolveSessionIndicatorIcon(status)}\n boxSize={boxSize}\n color={resolveSessionIndicatorColor(status)}\n aria-label={ariaLabel}\n cursor={cursor}\n onClick={onClick}\n />\n );\n};\n","import { Box, HStack, IconButton, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { Tooltip } from \"../tooltip\";\nimport type {\n SidebarAction,\n SidebarLinkComponent,\n SidebarNavigateEvent,\n SidebarNode,\n SidebarSection,\n} from \"./sidebar-tree.types\";\n\ninterface SidebarTreeProps {\n sections: SidebarSection[];\n expandedSections: string[];\n expandedNodes: string[];\n activeNodeId?: string | null;\n linkComponent?: SidebarLinkComponent;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleSection: (sectionId: string) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\ninterface SidebarRowActionsProps {\n sectionId: string;\n nodeId?: string;\n actions: SidebarAction[];\n}\n\ninterface SidebarNodeRowProps {\n sectionId: string;\n node: SidebarNode;\n level: number;\n expandedNodes: string[];\n activeNodeId?: string | null;\n linkComponent?: SidebarLinkComponent;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\nconst isExpanded = (id: string, values: string[]) => values.includes(id);\n\nconst SidebarActionButton = (props: { action: SidebarAction; sectionId: string; nodeId?: string }) => {\n const { action, sectionId, nodeId } = props;\n\n if (action.menuItems && action.menuItems.length > 0) {\n return (\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 <Menu.Positioner>\n <Menu.Content minW=\"160px\" bg=\"bg\">\n {action.menuItems.map((item) => (\n <Tooltip key={item.id} content={item.description} disabled={!item.description} openDelay={300}>\n <Menu.Item value={item.id} onClick={() => item.onAction?.()}>\n {item.icon ? <Box mr=\"2\">{item.icon}</Box> : null}\n {item.label}\n </Menu.Item>\n </Tooltip>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n );\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n size=\"2xs\"\n aria-label={action.label}\n onClick={(event) => {\n event.stopPropagation();\n action.onAction?.({ sectionId, nodeId });\n }}\n >\n {action.icon}\n </IconButton>\n );\n};\n\nconst SidebarRowActions = (props: SidebarRowActionsProps) => {\n const { sectionId, nodeId, actions } = props;\n\n if (actions.length === 0) return null;\n\n return (\n <HStack\n gap=\"0\"\n opacity=\"0\"\n pointerEvents=\"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 <SidebarActionButton key={action.id} action={action} sectionId={sectionId} nodeId={nodeId} />\n ))}\n </HStack>\n );\n};\n\nconst SidebarNodeRow = (props: SidebarNodeRowProps) => {\n const {\n sectionId,\n node,\n level,\n expandedNodes,\n activeNodeId,\n linkComponent: LinkComponent,\n onNavigate,\n onToggleNode,\n } = props;\n const hasChildren = (node.children?.length ?? 0) > 0;\n const expanded = hasChildren && isExpanded(node.id, expandedNodes);\n const isNavigable = node.isNavigable || node.navigationIntent !== undefined;\n const isActive = activeNodeId === node.id;\n const isDisabled = node.disabled === true;\n const paddingLeft = level > 0 ? `calc(var(--chakra-spacing-1) + ${level} * var(--chakra-spacing-3))` : undefined;\n const canLink = Boolean(LinkComponent && node.href && isNavigable && !hasChildren && !isDisabled);\n\n const handleClick = () => {\n if (isDisabled) return;\n\n if (hasChildren) {\n onToggleNode(node.id);\n return;\n }\n\n if (!isNavigable) return;\n\n onNavigate?.({\n sectionId,\n nodeId: node.id,\n node,\n intent: node.navigationIntent,\n });\n };\n\n const rowContent = (\n <HStack gap=\"2\" minW=\"0\" flex=\"1\" overflow=\"hidden\">\n {node.icon ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n {node.icon}\n </Box>\n ) : null}\n <Stack gap=\"0\" minW=\"0\" flex=\"1\">\n <HStack gap=\"1\" minW=\"0\">\n <Text textStyle=\"paragraph/S/regular\" color={isDisabled ? \"fg.muted\" : \"fg\"} truncate>\n {node.label}\n </Text>\n {hasChildren ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: expanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n ) : null}\n </HStack>\n {node.description ? (\n <Text textStyle=\"paragraph/XS/regular\" color=\"fg.muted\" truncate>\n {node.description}\n </Text>\n ) : null}\n </Stack>\n </HStack>\n );\n\n const rowStyles = {\n className: \"group\",\n role: \"option\" as const,\n \"aria-selected\": isActive,\n justify: \"space-between\" as const,\n align: \"center\" as const,\n borderRadius: \"xs\",\n px: \"1\",\n py: \"2xs\",\n pl: paddingLeft,\n bg: isActive ? \"bg.muted\" : \"transparent\",\n _hover: { bg: isActive ? \"bg.muted\" : \"bg.subtle\" },\n cursor: isDisabled ? (\"default\" as const) : (\"pointer\" as const),\n overflow: \"hidden\" as const,\n };\n\n return (\n <Stack gap={!node.children ? \"2xs\" : \"0\"}>\n {canLink && LinkComponent && node.href ? (\n <LinkComponent to={node.href}>\n <HStack {...rowStyles} onClick={handleClick}>\n {rowContent}\n <SidebarRowActions sectionId={sectionId} nodeId={node.id} actions={node.actions ?? []} />\n </HStack>\n </LinkComponent>\n ) : (\n <HStack {...rowStyles} onClick={handleClick}>\n {rowContent}\n <SidebarRowActions sectionId={sectionId} nodeId={node.id} actions={node.actions ?? []} />\n </HStack>\n )}\n\n {expanded\n ? node.children?.map((childNode) => (\n <SidebarNodeRow\n key={childNode.id}\n sectionId={sectionId}\n node={childNode}\n level={level + 1}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n linkComponent={LinkComponent}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : null}\n </Stack>\n );\n};\n\nexport const SidebarTree = (props: SidebarTreeProps) => {\n const {\n sections,\n expandedSections,\n expandedNodes,\n activeNodeId,\n linkComponent,\n onNavigate,\n onToggleSection,\n onToggleNode,\n } = props;\n\n return (\n <Stack role=\"listbox\" gap=\"md\" p=\"md\">\n {sections.map((section) => {\n const sectionExpanded = section.label ? isExpanded(section.id, expandedSections) : true;\n\n return (\n <Stack key={section.id} gap=\"0\" data-testid={`sidebar-section-${section.id}`}>\n {section.label ? (\n <HStack\n className=\"group\"\n justify=\"space-between\"\n align=\"center\"\n px=\"1\"\n py=\"2xs\"\n minH=\"7\"\n cursor=\"pointer\"\n borderRadius=\"xs\"\n _hover={{ bg: \"bg.subtle\" }}\n onClick={() => onToggleSection(section.id)}\n >\n <HStack gap=\"1\" flex=\"1\" minW=\"0\">\n <Text textStyle=\"label/XS\" textTransform=\"uppercase\" color=\"fg.muted\" letterSpacing=\"0.08em\" truncate>\n {section.label}\n </Text>\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: sectionExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n </HStack>\n <SidebarRowActions sectionId={section.id} actions={section.actions ?? []} />\n </HStack>\n ) : null}\n\n {sectionExpanded\n ? section.nodes.length > 0\n ? section.nodes.map((node) => (\n <SidebarNodeRow\n key={node.id}\n sectionId={section.id}\n node={node}\n level={0}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n linkComponent={linkComponent}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : (section.emptyState ?? null)\n : null}\n </Stack>\n );\n })}\n </Stack>\n );\n};\n","import { useStore } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\ninterface SidebarNextSnapshot {\n open: boolean;\n expandedSections: string[];\n expandedNodes: string[];\n}\n\ninterface SidebarNextState extends SidebarNextSnapshot {\n openSidebar: () => void;\n closeSidebar: () => void;\n toggleSidebar: () => void;\n toggleSection: (sectionId: string) => void;\n toggleNode: (nodeId: string) => void;\n setSectionExpanded: (sectionId: string, expanded: boolean) => void;\n setNodeExpanded: (nodeId: string, expanded: boolean) => void;\n reset: () => void;\n}\n\ninterface CreateSidebarNextStoreOptions {\n storageKey: string;\n initialState?: Partial<SidebarNextSnapshot>;\n}\n\nconst DEFAULT_SNAPSHOT = {\n open: true,\n expandedSections: [],\n expandedNodes: [],\n} satisfies SidebarNextSnapshot;\n\nconst SIDEBAR_STORE_NAMESPACE = \"pstdio/ui/sidebar-next\";\n\nconst toStorageName = (storageKey: string) => `${SIDEBAR_STORE_NAMESPACE}/${storageKey}`;\n\nconst createNoopStorage = () => ({\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n});\n\nconst toggleId = (values: string[], id: string) =>\n values.includes(id) ? values.filter((value) => value !== id) : [...values, id];\n\nconst setExpanded = (values: string[], id: string, expanded: boolean) => {\n if (expanded) {\n return values.includes(id) ? values : [...values, id];\n }\n\n return values.filter((value) => value !== id);\n};\n\nconst getPersistedSnapshot = (state: SidebarNextState) => ({\n open: state.open,\n expandedSections: state.expandedSections,\n expandedNodes: state.expandedNodes,\n});\n\nexport const createSidebarNextStore = (options: CreateSidebarNextStoreOptions) => {\n const { storageKey, initialState } = options;\n const snapshot = { ...DEFAULT_SNAPSHOT, ...initialState };\n\n return createStore<SidebarNextState>()(\n persist(\n (set) => ({\n ...snapshot,\n openSidebar: () => set((state) => ({ ...state, open: true })),\n closeSidebar: () => set((state) => ({ ...state, open: false })),\n toggleSidebar: () => set((state) => ({ ...state, open: !state.open })),\n toggleSection: (sectionId) =>\n set((state) => ({\n ...state,\n expandedSections: toggleId(state.expandedSections, sectionId),\n })),\n toggleNode: (nodeId) =>\n set((state) => ({\n ...state,\n expandedNodes: toggleId(state.expandedNodes, nodeId),\n })),\n setSectionExpanded: (sectionId, expanded) =>\n set((state) => ({\n ...state,\n expandedSections: setExpanded(state.expandedSections, sectionId, expanded),\n })),\n setNodeExpanded: (nodeId, expanded) =>\n set((state) => ({\n ...state,\n expandedNodes: setExpanded(state.expandedNodes, nodeId, expanded),\n })),\n reset: () => set(DEFAULT_SNAPSHOT),\n }),\n {\n name: toStorageName(storageKey),\n storage: createJSONStorage(() => {\n if (typeof globalThis.localStorage === \"undefined\") {\n return createNoopStorage();\n }\n\n return globalThis.localStorage;\n }),\n partialize: getPersistedSnapshot,\n },\n ),\n );\n};\n\nconst sidebarStoreRegistry = new Map<string, ReturnType<typeof createSidebarNextStore>>();\n\nexport const getSidebarNextStore = (storageKey: string) => {\n const existingStore = sidebarStoreRegistry.get(storageKey);\n\n if (existingStore) {\n return existingStore;\n }\n\n const store = createSidebarNextStore({ storageKey });\n sidebarStoreRegistry.set(storageKey, store);\n\n return store;\n};\n\nexport const useSidebarNextStore = <T>(storageKey: string, selector: (state: SidebarNextState) => T) => {\n const store = getSidebarNextStore(storageKey);\n return useStore(store, selector);\n};\n","import { Box } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextFooterProps {\n children?: ReactNode;\n}\n\nexport const SidebarNextFooter = (props: SidebarNextFooterProps) => {\n const { children } = props;\n\n if (!children) {\n return null;\n }\n\n return (\n <Box px=\"2\" py=\"2\" bg=\"bg\" position=\"sticky\" bottom=\"0\" overflow=\"hidden\">\n {children}\n </Box>\n );\n};\n","import { HStack, IconButton } from \"@chakra-ui/react\";\nimport { PanelLeftClose } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextHeaderProps {\n children?: ReactNode;\n onClose?: () => void;\n}\n\nexport const SidebarNextHeader = (props: SidebarNextHeaderProps) => {\n const { children, onClose } = props;\n\n return (\n <HStack justify=\"space-between\" align=\"center\" px=\"4\" py=\"3\" bg=\"bg\" position=\"sticky\" top=\"0\" zIndex=\"1\">\n <HStack minW=\"0\" flex=\"1\">\n {children}\n </HStack>\n {onClose ? (\n <IconButton variant=\"ghost\" size=\"sm\" aria-label=\"Hide sidebar\" onClick={onClose}>\n <PanelLeftClose size={16} />\n </IconButton>\n ) : null}\n </HStack>\n );\n};\n","import { Flex, Text } from \"@chakra-ui/react\";\nimport { useEffect } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SidebarTree } from \"../sidebar-tree/sidebar-tree\";\nimport { useSidebarNextStore } from \"./sidebar-next.store\";\nimport type { SidebarNextProps } from \"./sidebar-next.types\";\nimport { SidebarNextFooter } from \"./sidebar-next-footer\";\nimport { SidebarNextHeader } from \"./sidebar-next-header\";\n\nexport const SidebarNext = (props: SidebarNextProps) => {\n const {\n storageKey,\n sections,\n activeNodeId,\n header,\n footer,\n width = \"240px\",\n closable = true,\n emptyLabel = \"No items available.\",\n linkComponent,\n onNavigate,\n onOpenChange,\n } = props;\n\n const open = useSidebarNextStore(storageKey, (state) => state.open);\n const expandedSections = useSidebarNextStore(storageKey, (state) => state.expandedSections);\n const expandedNodes = useSidebarNextStore(storageKey, (state) => state.expandedNodes);\n const closeSidebar = useSidebarNextStore(storageKey, (state) => state.closeSidebar);\n const toggleSection = useSidebarNextStore(storageKey, (state) => state.toggleSection);\n const toggleNode = useSidebarNextStore(storageKey, (state) => state.toggleNode);\n\n useEffect(() => {\n onOpenChange?.(open);\n }, [onOpenChange, open]);\n\n if (!open && closable) {\n return null;\n }\n\n return (\n <Flex\n as=\"aside\"\n data-testid=\"sidebar\"\n direction=\"column\"\n h=\"100%\"\n w={width}\n minW={width}\n maxW={width}\n borderRightWidth=\"1px\"\n borderRightColor=\"border.muted\"\n bg=\"bg\"\n >\n <SidebarNextHeader onClose={closable ? closeSidebar : undefined}>{header}</SidebarNextHeader>\n\n <ScrollArea flex=\"1\">\n {sections.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"3\">\n {emptyLabel}\n </Text>\n ) : (\n <SidebarTree\n sections={sections}\n expandedSections={expandedSections}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n linkComponent={linkComponent}\n onNavigate={onNavigate}\n onToggleSection={toggleSection}\n onToggleNode={toggleNode}\n />\n )}\n </ScrollArea>\n\n <SidebarNextFooter>{footer}</SidebarNextFooter>\n </Flex>\n );\n};\n","import { Switch as ChakraSwitch } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface SwitchProps extends ChakraSwitch.RootProps {\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n trackLabel?: { on: React.ReactNode; off: React.ReactNode };\n thumbLabel?: { on: React.ReactNode; off: React.ReactNode };\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(function Switch(props, ref) {\n const { inputProps, children, rootRef, trackLabel, thumbLabel, disabled = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraSwitch.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraSwitch.HiddenInput ref={ref} {...inputProps} />\n <ChakraSwitch.Control borderRadius=\"md\" cursor={interactiveCursor}>\n <ChakraSwitch.Thumb borderRadius=\"full\">\n {thumbLabel && (\n <ChakraSwitch.ThumbIndicator fallback={thumbLabel?.off}>{thumbLabel?.on}</ChakraSwitch.ThumbIndicator>\n )}\n </ChakraSwitch.Thumb>\n {trackLabel && <ChakraSwitch.Indicator fallback={trackLabel.off}>{trackLabel.on}</ChakraSwitch.Indicator>}\n </ChakraSwitch.Control>\n {children != null && <ChakraSwitch.Label cursor={interactiveCursor}>{children}</ChakraSwitch.Label>}\n </ChakraSwitch.Root>\n );\n});\n","import {\n Button,\n HStack,\n Icon,\n IconButton,\n Menu,\n Popover,\n Portal,\n SegmentGroup,\n Separator,\n Stack,\n Text,\n} from \"@chakra-ui/react\";\nimport { ArrowDownUp, ChevronDown, KanbanSquare, List, Settings2 } from \"lucide-react\";\n\nimport type { DisplayProperty, GroupingField, OrderingField, WorkspaceOption, WorkspaceSettings } from \"./types\";\n\ninterface DisplayMenuProps {\n settings: WorkspaceSettings;\n groupingOptions: WorkspaceOption<GroupingField>[];\n orderingOptions: WorkspaceOption<OrderingField>[];\n displayPropertyOptions: WorkspaceOption<DisplayProperty>[];\n onViewModeChange: (value: WorkspaceSettings[\"viewMode\"]) => void;\n onColumnGroupingChange: (value: GroupingField) => void;\n onRowGroupingChange: (value: GroupingField) => void;\n onOrderingFieldChange: (value: OrderingField) => void;\n onSortDirectionToggle: () => void;\n onDisplayPropertyToggle: (property: DisplayProperty) => void;\n}\n\nconst SectionLabel = (props: { children: string }) => (\n <Text textStyle=\"label/XS/medium\" color=\"fg.muted\">\n {props.children}\n </Text>\n);\n\nconst Dropdown = <T extends string>(props: {\n label: string;\n value: T;\n options: WorkspaceOption<T>[];\n onSelect: (value: T) => void;\n}) => {\n const selectedLabel = props.options.find((option) => option.value === props.value)?.label ?? props.label;\n\n return (\n <Stack gap=\"2xs\">\n <SectionLabel>{props.label}</SectionLabel>\n <Menu.Root>\n <Menu.Trigger asChild>\n <Button size=\"sm\" variant=\"outline\" width=\"full\" justifyContent=\"space-between\">\n {selectedLabel}\n <Icon as={ChevronDown} color=\"fg.muted\" />\n </Button>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"260px\" bg=\"bg\">\n {props.options.map((option) => (\n <Menu.Item key={option.value} value={option.value} onClick={() => props.onSelect(option.value)}>\n <Text textStyle=\"label/S/regular\">{option.label}</Text>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n </Stack>\n );\n};\n\nexport const DisplayMenu = (props: DisplayMenuProps) => {\n const {\n settings,\n groupingOptions,\n orderingOptions,\n displayPropertyOptions,\n onViewModeChange,\n onColumnGroupingChange,\n onRowGroupingChange,\n onOrderingFieldChange,\n onSortDirectionToggle,\n onDisplayPropertyToggle,\n } = props;\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-end\", offset: { mainAxis: 8 } }}>\n <Popover.Trigger asChild>\n <IconButton aria-label=\"Display settings\" variant=\"ghost\" size=\"sm\">\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"320px\" p=\"sm\" bg=\"bg\">\n <Stack gap=\"sm\">\n <SectionLabel>View</SectionLabel>\n <SegmentGroup.Root\n size=\"sm\"\n value={settings.viewMode}\n onValueChange={(event) => {\n if (!event.value) return;\n onViewModeChange(event.value as WorkspaceSettings[\"viewMode\"]);\n }}\n >\n <SegmentGroup.Indicator />\n <SegmentGroup.Item value=\"list\">\n <SegmentGroup.ItemText>\n <HStack as=\"span\" gap=\"2xs\">\n <List size={14} />\n <span>List</span>\n </HStack>\n </SegmentGroup.ItemText>\n <SegmentGroup.ItemHiddenInput />\n </SegmentGroup.Item>\n <SegmentGroup.Item value=\"board\">\n <SegmentGroup.ItemText>\n <HStack as=\"span\" gap=\"2xs\">\n <KanbanSquare size={14} />\n <span>Board</span>\n </HStack>\n </SegmentGroup.ItemText>\n <SegmentGroup.ItemHiddenInput />\n </SegmentGroup.Item>\n </SegmentGroup.Root>\n\n <Separator />\n\n <Dropdown\n label=\"Grouping\"\n value={settings.columnGrouping}\n options={groupingOptions}\n onSelect={(value) => {\n onColumnGroupingChange(value);\n if (value === \"none\" || value === settings.rowGrouping) {\n onRowGroupingChange(\"none\");\n }\n }}\n />\n\n <Dropdown\n label=\"Sub-grouping\"\n value={settings.rowGrouping}\n options={groupingOptions.filter((o) => o.value === \"none\" || o.value !== settings.columnGrouping)}\n onSelect={onRowGroupingChange}\n />\n\n <Stack gap=\"2xs\">\n <SectionLabel>Ordering</SectionLabel>\n <HStack gap=\"2xs\">\n <Dropdown\n label=\"Sort by\"\n value={settings.ordering.field}\n options={orderingOptions}\n onSelect={onOrderingFieldChange}\n />\n <IconButton\n mt=\"lg\"\n aria-label=\"Toggle sort direction\"\n size=\"sm\"\n variant=\"outline\"\n onClick={onSortDirectionToggle}\n data-direction={settings.ordering.direction}\n >\n <Icon\n as={ArrowDownUp}\n transform={settings.ordering.direction === \"asc\" ? \"rotate(0deg)\" : \"rotate(180deg)\"}\n />\n </IconButton>\n </HStack>\n </Stack>\n\n <Separator />\n <Stack gap=\"2xs\">\n <SectionLabel>Display properties</SectionLabel>\n <HStack flexWrap=\"wrap\" gap=\"2xs\">\n {displayPropertyOptions.map((option) => {\n const isActive = settings.displayProperties.includes(option.value);\n\n return (\n <Button\n key={option.value}\n size=\"2xs\"\n variant={isActive ? \"solid\" : \"outline\"}\n onClick={() => onDisplayPropertyToggle(option.value)}\n >\n {option.label}\n </Button>\n );\n })}\n </HStack>\n </Stack>\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Badge, Box, Button, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { Filter } from \"lucide-react\";\nimport { useState } from \"react\";\n\nimport { Checkbox } from \"@/components/checkbox\";\n\nimport type { FilterState, WorkspaceFilterCategory } from \"./types\";\n\ninterface FilterMenuProps {\n categories: WorkspaceFilterCategory[];\n filters: FilterState;\n countsByCategory: Record<string, Record<string, number>>;\n onToggleFilterValue: (category: WorkspaceFilterCategory[\"id\"], value: string) => void;\n onClearFilter: (category: WorkspaceFilterCategory[\"id\"]) => void;\n onClearAll: () => void;\n}\n\nconst getActiveFilterCount = (filters: FilterState) =>\n Object.values(filters).reduce((sum, values) => sum + (values?.length ?? 0), 0);\n\nexport const FilterMenu = (props: FilterMenuProps) => {\n const { categories, filters, countsByCategory, onToggleFilterValue, onClearFilter, onClearAll } = props;\n const [activeCategoryId, setActiveCategoryId] = useState<WorkspaceFilterCategory[\"id\"]>(\n categories[0]?.id ?? \"status\",\n );\n\n const activeCategory = categories.find((category) => category.id === activeCategoryId) ?? categories[0];\n\n const activeFilterCount = getActiveFilterCount(filters);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-end\", offset: { mainAxis: 8 } }}>\n <Popover.Trigger asChild>\n <IconButton aria-label=\"Filter tickets\" variant={activeFilterCount > 0 ? \"outline\" : \"ghost\"} size=\"sm\">\n <HStack gap=\"2xs\">\n <Icon as={Filter} boxSize=\"14px\" />\n {activeFilterCount > 0 ? <Badge variant=\"solid\">{activeFilterCount}</Badge> : null}\n </HStack>\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"560px\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <HStack align=\"stretch\" gap=\"0\" minH=\"320px\">\n <Stack width=\"220px\" borderRightWidth=\"1px\" borderColor=\"border.muted\" p=\"sm\" gap=\"2xs\">\n <HStack justifyContent=\"space-between\">\n <Text textStyle=\"label/XS/medium\" color=\"fg.muted\">\n Filters\n </Text>\n <Button size=\"2xs\" variant=\"ghost\" onClick={onClearAll}>\n Clear all\n </Button>\n </HStack>\n {categories.map((category) => {\n const selectedValues = filters[category.id] ?? [];\n return (\n <Button\n key={category.id}\n variant={activeCategoryId === category.id ? \"subtle\" : \"ghost\"}\n size=\"sm\"\n justifyContent=\"space-between\"\n onClick={() => setActiveCategoryId(category.id)}\n >\n <Text>{category.label}</Text>\n {selectedValues.length > 0 ? <Badge variant=\"subtle\">{selectedValues.length}</Badge> : null}\n </Button>\n );\n })}\n </Stack>\n\n <Stack flex=\"1\" p=\"sm\" gap=\"sm\">\n {activeCategory ? (\n <>\n <HStack justifyContent=\"space-between\">\n <Text textStyle=\"label/S/medium\">{activeCategory.label}</Text>\n <Button size=\"2xs\" variant=\"ghost\" onClick={() => onClearFilter(activeCategory.id)}>\n Clear\n </Button>\n </HStack>\n <Stack gap=\"2xs\">\n {activeCategory.options.map((option) => {\n const checked = (filters[activeCategory.id] ?? []).includes(option.value);\n const count = countsByCategory[activeCategory.id]?.[option.value] ?? 0;\n\n return (\n <Box key={option.value} px=\"xs\" py=\"2xs\" borderRadius=\"sm\" _hover={{ bg: \"bg.subtle\" }}>\n <Checkbox\n checked={checked}\n onCheckedChange={() => onToggleFilterValue(activeCategory.id, option.value)}\n >\n <HStack gap=\"2xs\" justifyContent=\"space-between\" width=\"full\">\n <Text textStyle=\"label/S/regular\">{option.label}</Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {count}\n </Text>\n </HStack>\n </Checkbox>\n </Box>\n );\n })}\n </Stack>\n </>\n ) : null}\n </Stack>\n </HStack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Badge, HStack, Stack, Text, Wrap } from \"@chakra-ui/react\";\nimport { GitBranchIcon } from \"lucide-react\";\nimport type { DragEventHandler, MouseEvent } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { Tooltip } from \"@/components/tooltip\";\nimport { type SessionCompletionStatus, SessionIndicator } from \"../session-indicator\";\n\nexport interface TicketCardBadge {\n label: string;\n color?: string;\n}\n\ninterface TicketCardProps {\n ticketId: string;\n parentPath?: string[];\n sessionIndicatorLabel?: string;\n sessionIndicatorStatus?: SessionCompletionStatus;\n title: string;\n badges?: TicketCardBadge[];\n diffAdditions?: number;\n diffDeletions?: number;\n isSelected?: boolean;\n draggable?: boolean;\n onDragStart?: DragEventHandler<HTMLDivElement>;\n onDragEnd?: DragEventHandler<HTMLDivElement>;\n onClick?: () => void;\n onDiffBadgeClick?: () => void;\n onSessionIndicatorClick?: () => void;\n}\n\nexport const TicketCard = (props: TicketCardProps) => {\n const {\n ticketId,\n parentPath = [],\n sessionIndicatorLabel,\n sessionIndicatorStatus,\n title,\n badges = [],\n diffAdditions,\n diffDeletions,\n isSelected = false,\n draggable,\n onDragStart,\n onDragEnd,\n onClick,\n onDiffBadgeClick,\n onSessionIndicatorClick,\n } = props;\n\n const handleDiffBadgeClick = (event: MouseEvent<HTMLSpanElement>) => {\n event.stopPropagation();\n onDiffBadgeClick?.();\n };\n\n const handleSessionIndicatorClick = (event: MouseEvent<SVGSVGElement>) => {\n event.stopPropagation();\n onSessionIndicatorClick?.();\n };\n\n return (\n <Stack\n gap=\"xs\"\n padding=\"sm\"\n borderRadius=\"sm\"\n borderWidth=\"1px\"\n width=\"100%\"\n background=\"bg\"\n transition=\"box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out\"\n _hover={{\n borderColor: \"border.blue\",\n boxShadow: \"mid\",\n }}\n cursor={draggable ? \"grab\" : onClick ? \"pointer\" : \"default\"}\n draggable={draggable}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onClick={onClick}\n data-selected={isSelected ? \"true\" : undefined}\n >\n <HStack justifyContent={\"space-between\"} gap=\"2xs\" flexWrap=\"wrap\">\n <HStack gap=\"2xs\" flexShrink={0}>\n <Text textStyle=\"label/S/regular\" flexShrink={0}>\n {parentPath.length > 0 && (\n <Text as=\"span\" color=\"subtle\">\n {parentPath.join(\" / \")} /{\" \"}\n </Text>\n )}\n {ticketId}\n </Text>\n {sessionIndicatorLabel ? (\n <Tooltip content={`Session ${sessionIndicatorLabel}`}>\n <SessionIndicator\n status={sessionIndicatorStatus}\n boxSize=\"12px\"\n aria-label={`Session ${sessionIndicatorLabel}`}\n cursor={onSessionIndicatorClick ? \"pointer\" : \"default\"}\n onClick={onSessionIndicatorClick ? handleSessionIndicatorClick : undefined}\n />\n </Tooltip>\n ) : null}\n </HStack>\n {typeof diffAdditions === \"number\" && typeof diffDeletions === \"number\" ? (\n <DiffBubble\n additions={diffAdditions}\n deletions={diffDeletions}\n variant=\"ghost\"\n size=\"small\"\n label={<GitBranchIcon size=\"12\" />}\n onClick={handleDiffBadgeClick}\n data-testid=\"ticket-diff-badge\"\n />\n ) : null}\n </HStack>\n\n <HStack align=\"start\" gap=\"2xs\" flexWrap=\"wrap\">\n <Text textStyle=\"label/S/regular\" flex=\"1\" minW=\"0\">\n {title}\n </Text>\n </HStack>\n\n {badges.length > 0 && (\n <Wrap gap=\"2xs\">\n {badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n </Stack>\n );\n};\n","import { Badge, Box, HStack, Icon, IconButton, Menu, Spacer, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronRight, MoreHorizontal, Plus } from \"lucide-react\";\nimport { type ComponentProps, type ComponentType, type DragEvent, useState } from \"react\";\n\nimport { MenuItem } from \"@/components/menu-item\";\nimport { ScrollArea } from \"@/components/scroll-area\";\nimport { Tooltip } from \"@/components/tooltip\";\n\nimport { TicketCard } from \"./ticket-card\";\n\ntype TicketCardProps = ComponentProps<typeof TicketCard>;\n\nexport interface TicketBoardItem {\n id: string;\n cardProps: Omit<TicketCardProps, \"draggable\" | \"onDragStart\" | \"onDragEnd\" | \"isSelected\">;\n}\n\nexport interface TicketBoardColumnAction {\n id: string;\n label: string;\n icon: ComponentType<{ size?: number | string }>;\n}\n\nexport interface TicketBoardGroup {\n key: string;\n label: string;\n items: TicketBoardItem[];\n}\n\nexport interface TicketBoardColumn {\n id: string;\n label: string;\n color?: string;\n items: TicketBoardItem[];\n groups?: TicketBoardGroup[];\n canDragIn: boolean;\n canDragOut: boolean;\n canCreate: boolean;\n actions: TicketBoardColumnAction[];\n}\n\ninterface TicketBoardProps {\n columns: TicketBoardColumn[];\n selectedItemId?: string | null;\n onMoveItem?: (itemId: string, targetColumnId: string) => void;\n onMoveToGroup?: (itemId: string, targetGroupKey: string) => void;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\nexport const TicketBoard = (props: TicketBoardProps) => {\n const { columns, selectedItemId = null, onMoveItem, onMoveToGroup, onCreateStart, onColumnAction } = props;\n\n const [activeColumn, setActiveColumn] = useState<string | null>(null);\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n\n const handleDragStart = (itemId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.dataTransfer.setData(\"text/plain\", itemId);\n event.dataTransfer.effectAllowed = \"move\";\n };\n\n const handleDragEnd = () => {\n setActiveColumn(null);\n setActiveGroup(null);\n };\n\n const handleDragOver = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setActiveColumn(columnId);\n };\n\n const handleDragLeave = (event: DragEvent<HTMLDivElement>) => {\n if (event.currentTarget.contains(event.relatedTarget as Node)) return;\n setActiveColumn(null);\n };\n\n const handleDrop = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setActiveColumn(null);\n\n const itemId = event.dataTransfer.getData(\"text/plain\");\n if (!itemId) return;\n\n onMoveItem?.(itemId, columnId);\n };\n\n return (\n <ScrollArea\n height=\"100%\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ display: \"flex\", alignItems: \"stretch\", gap: \"0\", pb: \"2xs\", minH: \"100%\" }}\n >\n {columns.map((column) => (\n <Stack\n key={column.id}\n data-testid={`board-column-${column.id}`}\n gap=\"xs\"\n _notFirst={{ borderLeft: \"1px solid\", borderColor: \"border.muted\" }}\n background={activeColumn === column.id ? \"bg.subtle\" : \"bg\"}\n transition=\"background 150ms ease\"\n height=\"100%\"\n minH=\"240px\"\n overflow=\"hidden\"\n minW=\"260px\"\n flex=\"1 0 260px\"\n onDragOver={column.canDragIn ? handleDragOver(column.id) : undefined}\n onDragLeave={column.canDragIn ? handleDragLeave : undefined}\n onDrop={column.canDragIn ? handleDrop(column.id) : undefined}\n >\n <ColumnHeader column={column} onCreateStart={onCreateStart} onColumnAction={onColumnAction} />\n\n <ScrollArea\n flex=\"1\"\n minH=\"0\"\n verticalScrollbarProps={{ margin: \"0\" }}\n contentProps={{\n spaceY: \"sm\",\n ps: \"xs\",\n pe: \"xs\",\n }}\n >\n {column.groups && column.groups.length > 0\n ? column.groups.map((group) => {\n const groupId = `${column.id}::${group.key}`;\n return (\n <GroupSection\n key={group.key}\n group={group}\n selectedItemId={selectedItemId}\n canDragIn={column.canDragIn}\n canDragOut={column.canDragOut}\n isDropTarget={activeGroup === groupId}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onGroupDragOver={(event) => {\n event.preventDefault();\n event.stopPropagation();\n event.dataTransfer.dropEffect = \"move\";\n setActiveGroup(groupId);\n setActiveColumn(null);\n }}\n onGroupDragLeave={(event) => {\n if (event.currentTarget.contains(event.relatedTarget as Node)) return;\n setActiveGroup(null);\n }}\n onGroupDrop={(event) => {\n event.preventDefault();\n event.stopPropagation();\n setActiveGroup(null);\n setActiveColumn(null);\n const itemId = event.dataTransfer.getData(\"text/plain\");\n if (!itemId) return;\n onMoveItem?.(itemId, column.id);\n onMoveToGroup?.(itemId, group.key);\n }}\n />\n );\n })\n : column.items.map((item) => (\n <TicketCard\n key={item.id}\n {...item.cardProps}\n isSelected={item.id === selectedItemId}\n draggable={column.canDragOut}\n onDragStart={column.canDragOut ? handleDragStart(item.id) : undefined}\n onDragEnd={column.canDragOut ? handleDragEnd : undefined}\n />\n ))}\n </ScrollArea>\n </Stack>\n ))}\n </ScrollArea>\n );\n};\n\ninterface ColumnHeaderProps {\n column: TicketBoardColumn;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\ninterface GroupSectionProps {\n group: TicketBoardGroup;\n selectedItemId: string | null;\n canDragIn: boolean;\n canDragOut: boolean;\n isDropTarget: boolean;\n onDragStart: (itemId: string) => (event: DragEvent<HTMLDivElement>) => void;\n onDragEnd: () => void;\n onGroupDragOver: (event: DragEvent<HTMLDivElement>) => void;\n onGroupDragLeave: (event: DragEvent<HTMLDivElement>) => void;\n onGroupDrop: (event: DragEvent<HTMLDivElement>) => void;\n}\n\nconst GroupSection = (props: GroupSectionProps) => {\n const {\n group,\n selectedItemId,\n canDragIn,\n canDragOut,\n isDropTarget,\n onDragStart,\n onDragEnd,\n onGroupDragOver,\n onGroupDragLeave,\n onGroupDrop,\n } = props;\n const [expanded, setExpanded] = useState(true);\n\n return (\n <Stack\n gap=\"0\"\n borderRadius=\"sm\"\n background={isDropTarget ? \"bg.subtle\" : \"transparent\"}\n transition=\"background 150ms ease\"\n onDragOver={canDragIn ? onGroupDragOver : undefined}\n onDragLeave={canDragIn ? onGroupDragLeave : undefined}\n onDrop={canDragIn ? onGroupDrop : undefined}\n >\n <HStack\n px=\"xs\"\n py=\"2xs\"\n gap=\"2xs\"\n cursor=\"pointer\"\n _hover={{ bg: \"bg.muted\" }}\n borderRadius=\"sm\"\n onClick={() => setExpanded((v) => !v)}\n >\n <Box display=\"flex\" alignItems=\"center\" flexShrink={0}>\n <Icon\n as={ChevronRight}\n boxSize=\"14px\"\n color=\"fg.muted\"\n transform={expanded ? \"rotate(90deg)\" : \"rotate(0deg)\"}\n transition=\"transform 0.15s ease\"\n />\n </Box>\n <Text textStyle=\"label/S/medium\" color=\"fg.muted\">\n {group.label}\n </Text>\n <Badge variant=\"subtle\" colorPalette=\"gray\" size=\"sm\">\n {group.items.length}\n </Badge>\n </HStack>\n {expanded && (\n <Stack gap=\"sm\" pt=\"xs\">\n {group.items.map((item) => (\n <TicketCard\n key={item.id}\n {...item.cardProps}\n isSelected={item.id === selectedItemId}\n draggable={canDragOut}\n onDragStart={canDragOut ? onDragStart(item.id) : undefined}\n onDragEnd={canDragOut ? onDragEnd : undefined}\n />\n ))}\n </Stack>\n )}\n </Stack>\n );\n};\n\nconst ColumnHeader = (props: ColumnHeaderProps) => {\n const { column, onCreateStart, onColumnAction } = props;\n\n return (\n <HStack padding=\"xs\" gap=\"xs\" alignItems=\"center\">\n <Text textStyle=\"label/L/medium\">{column.label}</Text>\n\n <Badge variant=\"subtle\" colorPalette={column.color ?? \"gray\"}>\n {column.items.length}\n </Badge>\n\n <Spacer />\n\n {column.canCreate && onCreateStart && (\n <Tooltip content=\"Create new ticket\">\n <IconButton size=\"2xs\" variant=\"outline\" onClick={() => onCreateStart(column.id)} aria-label=\"Create ticket\">\n <Icon as={Plus} boxSize=\"12px\" />\n </IconButton>\n </Tooltip>\n )}\n\n {column.actions.length > 0 && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton size=\"2xs\" variant=\"ghost\" aria-label={`Column actions for ${column.label}`}>\n <Icon as={MoreHorizontal} boxSize=\"12px\" />\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"180px\" bg=\"bg\">\n {column.actions.map((action) => (\n <MenuItem\n key={action.id}\n primaryLabel={action.label}\n leftIcon={action.icon}\n onClick={() => onColumnAction?.(column.id, action.id)}\n />\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n )}\n </HStack>\n );\n};\n","import { Badge, Box, HStack, Icon, Text, Wrap } from \"@chakra-ui/react\";\nimport {\n type ColumnDef,\n type ExpandedState,\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n type Row,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { ChevronRight } from \"lucide-react\";\nimport { type ComponentType, type ReactNode, useState } from \"react\";\n\nimport type { TicketCardBadge } from \"./ticket-card\";\n\nexport interface TicketListItem {\n id: string;\n ticketId: string;\n title: string;\n statusIcon?: ComponentType<{ size?: number | string }>;\n statusColor?: string;\n badges?: TicketCardBadge[];\n date?: string;\n assigneeIcon?: ReactNode;\n children?: TicketListItem[];\n onClick?: () => void;\n}\n\ninterface TicketListProps {\n items: TicketListItem[];\n selectedItemId?: string | null;\n onItemClick?: (item: TicketListItem) => void;\n}\n\nconst columns: ColumnDef<TicketListItem, unknown>[] = [\n {\n id: \"ticket\",\n header: \"\",\n cell: ({ row }) => <TicketCell row={row} />,\n },\n];\n\nexport const TicketList = (props: TicketListProps) => {\n const { items, selectedItemId = null, onItemClick } = props;\n\n const [expanded, setExpanded] = useState<ExpandedState>(true);\n\n const table = useReactTable({\n data: items,\n columns,\n state: { expanded },\n onExpandedChange: setExpanded,\n getSubRows: (row) => row.children,\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getRowId: (row) => row.id,\n });\n\n return (\n <Box>\n {table.getRowModel().rows.map((row) => {\n const item = row.original;\n const isSelected = item.id === selectedItemId;\n const canExpand = row.getCanExpand();\n\n return (\n <HStack\n key={row.id}\n paddingX=\"sm\"\n paddingY=\"xs\"\n gap=\"sm\"\n cursor=\"pointer\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.muted\"\n background={isSelected ? \"bg.muted\" : \"transparent\"}\n _hover={{ background: \"bg.muted\" }}\n onClick={() => {\n if (canExpand) {\n row.toggleExpanded();\n } else {\n item.onClick?.();\n onItemClick?.(item);\n }\n }}\n data-selected={isSelected ? \"true\" : undefined}\n >\n {flexRender(row.getVisibleCells()[0].column.columnDef.cell, row.getVisibleCells()[0].getContext())}\n </HStack>\n );\n })}\n </Box>\n );\n};\n\ninterface TicketCellProps {\n row: Row<TicketListItem>;\n}\n\nconst TicketCell = (props: TicketCellProps) => {\n const { row } = props;\n const item = row.original;\n const depth = row.depth;\n\n return (\n <HStack gap=\"sm\" flex=\"1\" paddingLeft={depth > 0 ? `${depth * 24}px` : undefined}>\n {row.getCanExpand() ? <ExpandToggle row={row} /> : depth > 0 ? <TreeConnector /> : null}\n\n {item.statusIcon && (\n <Icon as={item.statusIcon} boxSize=\"16px\" color={item.statusColor ?? \"fg.muted\"} flexShrink={0} />\n )}\n\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\" flexShrink={0} minW=\"70px\">\n {item.ticketId}\n </Text>\n\n <Text textStyle=\"label/S/regular\" flex=\"1\" truncate>\n {item.title}\n </Text>\n\n {item.badges && item.badges.length > 0 && (\n <Wrap gap=\"2xs\" flexShrink={0}>\n {item.badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n\n {item.assigneeIcon && <Box flexShrink={0}>{item.assigneeIcon}</Box>}\n\n {item.date && (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\" flexShrink={0}>\n {item.date}\n </Text>\n )}\n </HStack>\n );\n};\n\ninterface ExpandToggleProps {\n row: Row<TicketListItem>;\n}\n\nconst ExpandToggle = (props: ExpandToggleProps) => {\n const { row } = props;\n const isExpanded = row.getIsExpanded();\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n width=\"16px\"\n height=\"16px\"\n data-expanded={isExpanded ? \"true\" : undefined}\n aria-label={isExpanded ? \"Collapse group\" : \"Expand group\"}\n >\n <ChevronRight\n size={14}\n style={{\n color: \"var(--chakra-colors-fg-muted)\",\n transform: isExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.15s ease\",\n }}\n />\n </Box>\n );\n};\n\nconst TreeConnector = () => (\n <Box width=\"16px\" height=\"16px\" position=\"relative\" flexShrink={0}>\n <Box position=\"absolute\" left=\"7px\" top=\"0\" bottom=\"50%\" borderLeftWidth=\"1px\" borderColor=\"border.muted\" />\n <Box position=\"absolute\" left=\"7px\" top=\"50%\" width=\"8px\" borderBottomWidth=\"1px\" borderColor=\"border.muted\" />\n </Box>\n);\n","import type { FilterCategory, FilterState, GroupingField, WorkspaceOrdering, WorkspaceTicket } from \"./types\";\n\ninterface GroupingOptions {\n columnGrouping: GroupingField;\n rowGrouping: GroupingField;\n knownColumnKeys?: string[];\n}\n\ninterface TicketRowGroup {\n key: string;\n label: string;\n tickets: WorkspaceTicket[];\n}\n\ninterface TicketColumnGroup {\n key: string;\n label: string;\n tickets: WorkspaceTicket[];\n rows: TicketRowGroup[];\n}\n\nconst FALLBACK_LABELS: Record<Exclude<GroupingField, \"none\">, string> = {\n status: \"No status\",\n assignee: \"Unassigned\",\n};\n\nconst normalize = (value: string | null | undefined, fallback: string) => {\n if (!value || value.trim() === \"\") {\n return fallback;\n }\n\n return value;\n};\n\nconst getGroupingValue = (ticket: WorkspaceTicket, grouping: GroupingField) => {\n if (grouping === \"none\") {\n return \"All\";\n }\n\n if (grouping === \"status\") {\n return normalize(ticket.status, FALLBACK_LABELS.status);\n }\n\n return normalize(ticket.assignee, FALLBACK_LABELS.assignee);\n};\n\nconst compareGroupKey = (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true });\n\nconst orderByDirection = (value: number, direction: WorkspaceOrdering[\"direction\"]) =>\n direction === \"asc\" ? value : value * -1;\n\nexport const orderTickets = (tickets: WorkspaceTicket[], ordering: WorkspaceOrdering) => {\n if (ordering.field === \"manual\") {\n return tickets;\n }\n\n return [...tickets].sort((a, b) => {\n if (ordering.field === \"updated\") {\n const left = new Date(a.updatedAt ?? 0).getTime();\n const right = new Date(b.updatedAt ?? 0).getTime();\n return orderByDirection(left - right, ordering.direction);\n }\n\n if (ordering.field === \"title\") {\n return orderByDirection(a.title.localeCompare(b.title), ordering.direction);\n }\n\n return orderByDirection(a.ticketId.localeCompare(b.ticketId, undefined, { numeric: true }), ordering.direction);\n });\n};\n\nexport const groupTickets = (tickets: WorkspaceTicket[], options: GroupingOptions): TicketColumnGroup[] => {\n const { columnGrouping, rowGrouping, knownColumnKeys } = options;\n const groupedByColumn = new Map<string, WorkspaceTicket[]>();\n\n // Seed with known keys so empty columns are preserved\n if (knownColumnKeys) {\n for (const key of knownColumnKeys) {\n groupedByColumn.set(key, []);\n }\n }\n\n for (const ticket of tickets) {\n const key = getGroupingValue(ticket, columnGrouping);\n groupedByColumn.set(key, [...(groupedByColumn.get(key) ?? []), ticket]);\n }\n\n const columnEntries = [...groupedByColumn.entries()].sort(([left], [right]) => compareGroupKey(left, right));\n\n return columnEntries.map(([columnKey, columnTickets]) => {\n if (rowGrouping === \"none\") {\n return {\n key: columnKey,\n label: columnKey,\n tickets: columnTickets,\n rows: [],\n };\n }\n\n const groupedByRow = new Map<string, WorkspaceTicket[]>();\n\n for (const ticket of columnTickets) {\n const rowKey = getGroupingValue(ticket, rowGrouping);\n groupedByRow.set(rowKey, [...(groupedByRow.get(rowKey) ?? []), ticket]);\n }\n\n const rows = [...groupedByRow.entries()]\n .sort(([left], [right]) => compareGroupKey(left, right))\n .map(([rowKey, rowTickets]) => ({\n key: rowKey,\n label: rowKey,\n tickets: rowTickets,\n }));\n\n return {\n key: columnKey,\n label: columnKey,\n tickets: columnTickets,\n rows,\n };\n });\n};\n\nconst getTicketFilterValues = (ticket: WorkspaceTicket, category: FilterCategory) => {\n if (category === \"labels\") {\n return ticket.labels ?? [];\n }\n\n if (category === \"status\") {\n return [normalize(ticket.status, FALLBACK_LABELS.status)];\n }\n\n return [normalize(ticket.assignee, FALLBACK_LABELS.assignee)];\n};\n\nexport const filterTickets = (tickets: WorkspaceTicket[], filters: FilterState) => {\n const activeFilters = Object.entries(filters).filter(([, values]) => values && values.length > 0);\n\n if (activeFilters.length === 0) {\n return tickets;\n }\n\n return tickets.filter((ticket) =>\n activeFilters.every(([category, values]) => {\n const ticketValues = getTicketFilterValues(ticket, category as FilterCategory);\n return ticketValues.some((value) => values?.includes(value));\n }),\n );\n};\n\nexport const countFilterValues = (tickets: WorkspaceTicket[], category: FilterCategory) => {\n const counts: Record<string, number> = {};\n\n for (const ticket of tickets) {\n for (const value of getTicketFilterValues(ticket, category)) {\n counts[value] = (counts[value] ?? 0) + 1;\n }\n }\n\n return counts;\n};\n\nexport type { TicketColumnGroup, TicketRowGroup };\n","export type ViewMode = \"board\" | \"list\";\n\nexport type GroupingField = \"status\" | \"assignee\" | \"none\";\n\nexport type OrderingField = \"manual\" | \"updated\" | \"title\" | \"ticketId\";\n\nexport type SortDirection = \"asc\" | \"desc\";\n\nexport type DisplayProperty = \"id\" | \"status\" | \"assignee\" | \"labels\" | \"updated\";\n\nexport type FilterCategory = \"status\" | \"assignee\" | \"labels\";\n\nexport interface WorkspaceOrdering {\n field: OrderingField;\n direction: SortDirection;\n}\n\nexport interface WorkspaceSettings {\n viewMode: ViewMode;\n columnGrouping: GroupingField;\n rowGrouping: GroupingField;\n ordering: WorkspaceOrdering;\n displayProperties: DisplayProperty[];\n}\n\nexport type FilterState = Partial<Record<FilterCategory, string[]>>;\n\nexport interface WorkspaceOption<TValue extends string> {\n value: TValue;\n label: string;\n}\n\nexport interface WorkspaceFilterOption {\n value: string;\n label: string;\n}\n\nexport interface WorkspaceFilterCategory {\n id: FilterCategory;\n label: string;\n options: WorkspaceFilterOption[];\n}\n\nexport interface WorkspaceTicket {\n id: string;\n ticketId: string;\n title: string;\n status?: string | null;\n statusColor?: string;\n assignee?: string | null;\n labels?: string[];\n updatedAt?: string | null;\n parentPath?: string[];\n isSubIssue?: boolean;\n}\n\nexport const DEFAULT_WORKSPACE_SETTINGS: WorkspaceSettings = {\n viewMode: \"board\",\n columnGrouping: \"status\",\n rowGrouping: \"none\",\n ordering: {\n field: \"manual\",\n direction: \"asc\",\n },\n displayProperties: [\"labels\"],\n};\n\nexport const DEFAULT_GROUPING_OPTIONS: WorkspaceOption<GroupingField>[] = [\n { value: \"status\", label: \"Status\" },\n { value: \"assignee\", label: \"Assignee\" },\n { value: \"none\", label: \"No grouping\" },\n];\n\nexport const DEFAULT_ORDERING_OPTIONS: WorkspaceOption<OrderingField>[] = [\n { value: \"manual\", label: \"Manual\" },\n { value: \"updated\", label: \"Updated\" },\n { value: \"title\", label: \"Title\" },\n { value: \"ticketId\", label: \"ID\" },\n];\n\nexport const DEFAULT_DISPLAY_PROPERTY_OPTIONS: WorkspaceOption<DisplayProperty>[] = [\n { value: \"id\", label: \"ID\" },\n { value: \"status\", label: \"Status\" },\n { value: \"assignee\", label: \"Assignee\" },\n { value: \"labels\", label: \"Labels\" },\n { value: \"updated\", label: \"Updated\" },\n];\n","import { useStore } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\nimport { DEFAULT_WORKSPACE_SETTINGS, type FilterCategory, type FilterState, type WorkspaceSettings } from \"./types\";\n\ninterface WorkspaceSnapshot {\n settings: WorkspaceSettings;\n filters: FilterState;\n}\n\ninterface WorkspaceState extends WorkspaceSnapshot {\n setViewMode: (viewMode: WorkspaceSettings[\"viewMode\"]) => void;\n setColumnGrouping: (columnGrouping: WorkspaceSettings[\"columnGrouping\"]) => void;\n setRowGrouping: (rowGrouping: WorkspaceSettings[\"rowGrouping\"]) => void;\n setOrdering: (ordering: WorkspaceSettings[\"ordering\"]) => void;\n setOrderingField: (field: WorkspaceSettings[\"ordering\"][\"field\"]) => void;\n toggleSortDirection: () => void;\n toggleDisplayProperty: (property: WorkspaceSettings[\"displayProperties\"][number]) => void;\n setFilter: (category: FilterCategory, values: string[]) => void;\n toggleFilterValue: (category: FilterCategory, value: string) => void;\n clearFilter: (category: FilterCategory) => void;\n clearAllFilters: () => void;\n reset: () => void;\n}\n\ninterface CreateTicketsWorkspaceStoreOptions {\n storageKey: string;\n initialState?: Partial<WorkspaceSnapshot>;\n}\n\nconst WORKSPACE_STORE_NAMESPACE = \"pstdio/ui/tickets-workspace\";\n\nconst toStorageName = (storageKey: string) => `${WORKSPACE_STORE_NAMESPACE}/${storageKey}`;\n\nconst DEFAULT_SNAPSHOT: WorkspaceSnapshot = {\n settings: DEFAULT_WORKSPACE_SETTINGS,\n filters: {},\n};\n\nconst createNoopStorage = () => ({\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n});\n\nconst toggleValue = (values: string[], value: string) =>\n values.includes(value) ? values.filter((entry) => entry !== value) : [...values, value];\n\nexport const createTicketsWorkspaceStore = (options: CreateTicketsWorkspaceStoreOptions) => {\n const { storageKey, initialState } = options;\n const snapshot = {\n settings: { ...DEFAULT_SNAPSHOT.settings, ...(initialState?.settings ?? {}) },\n filters: initialState?.filters ?? DEFAULT_SNAPSHOT.filters,\n };\n\n return createStore<WorkspaceState>()(\n persist(\n (set) => ({\n ...snapshot,\n setViewMode: (viewMode) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, viewMode },\n })),\n setColumnGrouping: (columnGrouping) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, columnGrouping },\n })),\n setRowGrouping: (rowGrouping) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, rowGrouping },\n })),\n setOrdering: (ordering) =>\n set((state) => ({\n ...state,\n settings: { ...state.settings, ordering },\n })),\n setOrderingField: (field) =>\n set((state) => ({\n ...state,\n settings: {\n ...state.settings,\n ordering: {\n ...state.settings.ordering,\n field,\n },\n },\n })),\n toggleSortDirection: () =>\n set((state) => ({\n ...state,\n settings: {\n ...state.settings,\n ordering: {\n ...state.settings.ordering,\n direction: state.settings.ordering.direction === \"asc\" ? \"desc\" : \"asc\",\n },\n },\n })),\n toggleDisplayProperty: (property) =>\n set((state) => {\n const displayProperties = state.settings.displayProperties.includes(property)\n ? state.settings.displayProperties.filter((value) => value !== property)\n : [...state.settings.displayProperties, property];\n\n return {\n ...state,\n settings: {\n ...state.settings,\n displayProperties,\n },\n };\n }),\n setFilter: (category, values) =>\n set((state) => ({\n ...state,\n filters: {\n ...state.filters,\n [category]: values,\n },\n })),\n toggleFilterValue: (category, value) =>\n set((state) => {\n const currentValues = state.filters[category] ?? [];\n const nextValues = toggleValue(currentValues, value);\n const nextFilters = { ...state.filters, [category]: nextValues };\n\n if (nextValues.length === 0) {\n delete nextFilters[category];\n }\n\n return { ...state, filters: nextFilters };\n }),\n clearFilter: (category) =>\n set((state) => {\n const nextFilters = { ...state.filters };\n delete nextFilters[category];\n\n return {\n ...state,\n filters: nextFilters,\n };\n }),\n clearAllFilters: () => set((state) => ({ ...state, filters: {} })),\n reset: () => set(DEFAULT_SNAPSHOT),\n }),\n {\n name: toStorageName(storageKey),\n storage: createJSONStorage(() => {\n if (typeof globalThis.localStorage === \"undefined\") {\n return createNoopStorage();\n }\n\n return globalThis.localStorage;\n }),\n partialize: (state) => ({\n settings: state.settings,\n filters: state.filters,\n }),\n },\n ),\n );\n};\n\nconst workspaceStoreRegistry = new Map<string, ReturnType<typeof createTicketsWorkspaceStore>>();\n\nexport const getTicketsWorkspaceStore = (storageKey: string) => {\n const existingStore = workspaceStoreRegistry.get(storageKey);\n if (existingStore) {\n return existingStore;\n }\n\n const store = createTicketsWorkspaceStore({ storageKey });\n workspaceStoreRegistry.set(storageKey, store);\n\n return store;\n};\n\nexport const useTicketsWorkspaceStore = <T>(storageKey: string, selector: (state: WorkspaceState) => T) => {\n const store = getTicketsWorkspaceStore(storageKey);\n return useStore(store, selector);\n};\n\nexport type { WorkspaceState };\n","import { Box, HStack, Stack } from \"@chakra-ui/react\";\n\nimport { EmptyState } from \"@/components/empty-state\";\n\nimport { DisplayMenu } from \"./display-menu\";\nimport { FilterMenu } from \"./filter-menu\";\nimport {\n TicketBoard,\n type TicketBoardColumn,\n type TicketBoardColumnAction,\n type TicketBoardGroup,\n} from \"./ticket-board\";\nimport type { TicketCardBadge } from \"./ticket-card\";\nimport { countFilterValues, filterTickets, groupTickets, orderTickets } from \"./ticket-grouping\";\nimport { TicketList, type TicketListItem } from \"./ticket-list\";\nimport {\n DEFAULT_DISPLAY_PROPERTY_OPTIONS,\n DEFAULT_GROUPING_OPTIONS,\n DEFAULT_ORDERING_OPTIONS,\n type DisplayProperty,\n type FilterCategory,\n type GroupingField,\n type OrderingField,\n type WorkspaceFilterCategory,\n type WorkspaceOption,\n type WorkspaceTicket,\n} from \"./types\";\nimport { useTicketsWorkspaceStore } from \"./use-workspace-store\";\n\ninterface BoardColumnConfig {\n color?: string;\n canDragIn?: boolean;\n canDragOut?: boolean;\n canCreate?: boolean;\n actions?: TicketBoardColumnAction[];\n}\n\ninterface TicketsWorkspaceProps<TTicket extends WorkspaceTicket = WorkspaceTicket> {\n tickets: TTicket[];\n storageKey: string;\n selectedTicketId?: string | null;\n groupingOptions?: WorkspaceOption<GroupingField>[];\n orderingOptions?: WorkspaceOption<OrderingField>[];\n displayPropertyOptions?: WorkspaceOption<DisplayProperty>[];\n filterCategories?: WorkspaceFilterCategory[];\n knownColumnKeys?: string[];\n emptyTitle?: string;\n emptyDescription?: string;\n onTicketClick?: (ticket: TTicket) => void;\n onMoveTicket?: (ticketId: string, targetColumnId: string) => void;\n onMoveToGroup?: (ticketId: string, targetGroupKey: string) => void;\n onCreateTicket?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig;\n}\n\nconst toTitleCase = (value: string) =>\n value\n .replaceAll(\"_\", \" \")\n .split(\" \")\n .filter((chunk) => chunk.length > 0)\n .map((chunk) => chunk[0]!.toUpperCase() + chunk.slice(1))\n .join(\" \");\n\nconst filterValueGetters: Record<FilterCategory, (ticket: WorkspaceTicket) => string[]> = {\n status: (ticket) => (ticket.status ? [ticket.status] : []),\n assignee: (ticket) => (ticket.assignee ? [ticket.assignee] : []),\n labels: (ticket) => ticket.labels ?? [],\n};\n\nconst collectCategoryOptions = (tickets: WorkspaceTicket[], category: FilterCategory) => {\n const values = new Set<string>();\n\n for (const ticket of tickets) {\n const ticketValues = filterValueGetters[category](ticket);\n for (const value of ticketValues) {\n values.add(value);\n }\n }\n\n return [...values]\n .sort((a, b) => a.localeCompare(b, undefined, { numeric: true }))\n .map((value) => ({ value, label: toTitleCase(value) }));\n};\n\nconst buildDefaultFilterCategories = (tickets: WorkspaceTicket[]): WorkspaceFilterCategory[] => {\n return [\n { id: \"status\", label: \"Status\", options: collectCategoryOptions(tickets, \"status\") },\n { id: \"assignee\", label: \"Assignee\", options: collectCategoryOptions(tickets, \"assignee\") },\n { id: \"labels\", label: \"Labels\", options: collectCategoryOptions(tickets, \"labels\") },\n ];\n};\n\nconst toBadges = (ticket: WorkspaceTicket, displayProperties: DisplayProperty[]): TicketCardBadge[] => {\n const badges: TicketCardBadge[] = [];\n const includes = (property: DisplayProperty) => displayProperties.includes(property);\n\n if (includes(\"status\") && ticket.status) {\n badges.push({ label: ticket.status, color: ticket.statusColor ?? \"gray\" });\n }\n\n if (includes(\"assignee\") && ticket.assignee) {\n badges.push({ label: ticket.assignee, color: \"blue\" });\n }\n\n if (includes(\"updated\") && ticket.updatedAt) {\n badges.push({ label: new Date(ticket.updatedAt).toLocaleDateString(), color: \"gray\" });\n }\n\n if (includes(\"labels\")) {\n for (const label of ticket.labels ?? []) {\n badges.push({ label, color: \"purple\" });\n }\n }\n\n return badges;\n};\n\nexport const TicketsWorkspace = <TTicket extends WorkspaceTicket>(props: TicketsWorkspaceProps<TTicket>) => {\n const {\n tickets,\n storageKey,\n selectedTicketId = null,\n groupingOptions = DEFAULT_GROUPING_OPTIONS,\n orderingOptions = DEFAULT_ORDERING_OPTIONS,\n displayPropertyOptions = DEFAULT_DISPLAY_PROPERTY_OPTIONS,\n filterCategories,\n knownColumnKeys: knownColumnKeysProp,\n emptyTitle = \"No tickets found\",\n emptyDescription = \"Try changing filters or display settings.\",\n onTicketClick,\n onMoveTicket,\n onMoveToGroup,\n onCreateTicket,\n onColumnAction,\n getBoardColumnConfig,\n } = props;\n\n const settings = useTicketsWorkspaceStore(storageKey, (state) => state.settings);\n const filters = useTicketsWorkspaceStore(storageKey, (state) => state.filters);\n const setViewMode = useTicketsWorkspaceStore(storageKey, (state) => state.setViewMode);\n const setColumnGrouping = useTicketsWorkspaceStore(storageKey, (state) => state.setColumnGrouping);\n const setRowGrouping = useTicketsWorkspaceStore(storageKey, (state) => state.setRowGrouping);\n const setOrderingField = useTicketsWorkspaceStore(storageKey, (state) => state.setOrderingField);\n const toggleSortDirection = useTicketsWorkspaceStore(storageKey, (state) => state.toggleSortDirection);\n const toggleDisplayProperty = useTicketsWorkspaceStore(storageKey, (state) => state.toggleDisplayProperty);\n const toggleFilterValue = useTicketsWorkspaceStore(storageKey, (state) => state.toggleFilterValue);\n const clearFilter = useTicketsWorkspaceStore(storageKey, (state) => state.clearFilter);\n const clearAllFilters = useTicketsWorkspaceStore(storageKey, (state) => state.clearAllFilters);\n\n const visibleTickets = filterTickets(tickets, filters) as TTicket[];\n\n const categoryOptions = filterCategories ?? buildDefaultFilterCategories(tickets);\n\n const countsByCategory = Object.fromEntries(\n categoryOptions.map((category) => [category.id, countFilterValues(tickets, category.id)]),\n );\n\n const knownColumnKeys =\n knownColumnKeysProp ??\n (settings.columnGrouping !== \"none\"\n ? categoryOptions.find((c) => c.id === settings.columnGrouping)?.options.map((o) => o.value)\n : undefined);\n\n const grouped = groupTickets(visibleTickets, {\n columnGrouping: settings.columnGrouping,\n rowGrouping: settings.rowGrouping,\n knownColumnKeys,\n });\n\n const toListItem = (ticket: TTicket): TicketListItem => ({\n id: ticket.id,\n ticketId: settings.displayProperties.includes(\"id\") ? ticket.ticketId : \"\",\n title: ticket.title,\n badges: toBadges(ticket, settings.displayProperties),\n onClick: () => onTicketClick?.(ticket),\n });\n\n const toGroupListItem = (group: { key: string; label: string; tickets: WorkspaceTicket[] }): TicketListItem => ({\n id: `group::${group.key}`,\n ticketId: \"\",\n title: `${toTitleCase(group.label)} (${group.tickets.length})`,\n children: orderTickets(group.tickets, settings.ordering).map((ticket) => toListItem(ticket as TTicket)),\n });\n\n const listItems: TicketListItem[] =\n settings.columnGrouping === \"none\"\n ? orderTickets(visibleTickets, settings.ordering).map((ticket) => toListItem(ticket as TTicket))\n : grouped.map((group) => {\n if (group.rows.length > 0) {\n return {\n id: `group::${group.key}`,\n ticketId: \"\",\n title: `${toTitleCase(group.label)} (${group.tickets.length})`,\n children: group.rows.map((row) => ({\n ...toGroupListItem(row),\n id: `group::${group.key}::${row.key}`,\n })),\n };\n }\n return toGroupListItem(group);\n });\n\n const toBoardItems = (tickets: WorkspaceTicket[]) =>\n tickets.map((ticket) => ({\n id: ticket.id,\n cardProps: {\n ticketId: settings.displayProperties.includes(\"id\") ? ticket.ticketId : \"\",\n parentPath: ticket.parentPath,\n title: ticket.title,\n badges: toBadges(ticket, settings.displayProperties),\n onClick: () => onTicketClick?.(ticket as TTicket),\n },\n }));\n\n const boardColumns: TicketBoardColumn[] = grouped.map((column) => {\n const columnConfig = getBoardColumnConfig?.(column.key) ?? {};\n const orderedTickets = orderTickets(column.tickets, settings.ordering);\n\n const groups: TicketBoardGroup[] | undefined =\n column.rows.length > 0\n ? column.rows.map((row) => ({\n key: row.key,\n label: toTitleCase(row.label),\n items: toBoardItems(orderTickets(row.tickets, settings.ordering)),\n }))\n : undefined;\n\n return {\n id: column.key,\n label: column.label,\n color: columnConfig.color,\n canDragIn: columnConfig.canDragIn ?? false,\n canDragOut: columnConfig.canDragOut ?? false,\n canCreate: columnConfig.canCreate ?? false,\n actions: columnConfig.actions ?? [],\n items: toBoardItems(orderedTickets),\n groups,\n } satisfies TicketBoardColumn;\n });\n\n return (\n <Stack gap=\"sm\" height=\"100%\" minH=\"0\">\n <HStack justifyContent=\"flex-end\" gap=\"2xs\">\n <FilterMenu\n categories={categoryOptions}\n filters={filters}\n countsByCategory={countsByCategory}\n onToggleFilterValue={toggleFilterValue}\n onClearFilter={clearFilter}\n onClearAll={clearAllFilters}\n />\n <DisplayMenu\n settings={settings}\n groupingOptions={groupingOptions}\n orderingOptions={orderingOptions}\n displayPropertyOptions={displayPropertyOptions}\n onViewModeChange={setViewMode}\n onColumnGroupingChange={setColumnGrouping}\n onRowGroupingChange={setRowGrouping}\n onOrderingFieldChange={setOrderingField}\n onSortDirectionToggle={toggleSortDirection}\n onDisplayPropertyToggle={toggleDisplayProperty}\n />\n </HStack>\n\n {settings.viewMode === \"board\" ? (\n <Box flex=\"1\" minH=\"0\">\n {boardColumns.length > 0 ? (\n <TicketBoard\n columns={boardColumns}\n selectedItemId={selectedTicketId}\n onMoveItem={onMoveTicket}\n onMoveToGroup={onMoveToGroup}\n onCreateStart={onCreateTicket}\n onColumnAction={onColumnAction}\n />\n ) : (\n <EmptyState\n title={emptyTitle}\n description={emptyDescription}\n height=\"100%\"\n borderWidth=\"1px\"\n borderRadius=\"md\"\n />\n )}\n </Box>\n ) : listItems.length > 0 ? (\n <TicketList items={listItems} selectedItemId={selectedTicketId} />\n ) : (\n <EmptyState title={emptyTitle} description={emptyDescription} borderWidth=\"1px\" borderRadius=\"md\" />\n )}\n </Stack>\n );\n};\n\nexport type { TicketsWorkspaceProps };\n","import { Toaster as ChakraToaster, createToaster, Portal, Spinner, Stack, Toast } from \"@chakra-ui/react\";\n\nexport const toaster: ReturnType<typeof createToaster> = createToaster({\n placement: \"bottom-end\",\n pauseOnPageIdle: true,\n});\n\nexport const Toaster = () => {\n return (\n <Portal>\n <ChakraToaster toaster={toaster} insetInline={{ mdDown: \"4\" }}>\n {(toast) => (\n <Toast.Root width={{ md: \"sm\" }}>\n {toast.type === \"loading\" ? <Spinner size=\"sm\" color=\"blue.solid\" /> : <Toast.Indicator />}\n <Stack gap=\"1\" flex=\"1\" maxWidth=\"100%\">\n {toast.title && <Toast.Title>{toast.title}</Toast.Title>}\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Stack>\n {toast.action && <Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>}\n {toast.closable && <Toast.CloseTrigger />}\n </Toast.Root>\n )}\n </ChakraToaster>\n </Portal>\n );\n};\n","export type ThemePreference = \"light\" | \"dark\";\n\nexport const applyThemePreference = (theme: ThemePreference) => {\n if (typeof document === \"undefined\") return;\n\n const root = document.documentElement;\n const body = document.body;\n const opposite = theme === \"dark\" ? \"light\" : \"dark\";\n\n for (const el of [root, body]) {\n if (!el) continue;\n el.classList.remove(opposite);\n el.classList.add(theme);\n el.setAttribute(\"data-theme\", theme);\n el.style.colorScheme = theme;\n }\n};\n","import { createContext, type ReactNode, useContext, useEffect, useState } from \"react\";\n\nimport { applyThemePreference, type ThemePreference } from \"./apply-theme-preference\";\n\nconst STORAGE_KEY = \"theme-preference\";\n\nconst ThemePreferenceContext = createContext<ThemePreferenceContextValue | null>(null);\n\ninterface ThemePreferenceContextValue {\n themePreference: ThemePreference;\n setThemePreference: (preference: ThemePreference) => void;\n toggleThemePreference: () => void;\n}\n\ninterface ThemePreferenceProviderProps {\n children: ReactNode;\n initialPreference?: ThemePreference;\n}\n\nexport const getInitialThemePreference = () => {\n if (typeof window === \"undefined\") return \"light\";\n\n const stored = window.localStorage.getItem(STORAGE_KEY);\n if (stored === \"dark\" || stored === \"light\") return stored;\n\n const prefersDark =\n typeof window.matchMedia === \"function\" && window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n return prefersDark ? \"dark\" : \"light\";\n};\n\nexport const ThemePreferenceProvider = (props: ThemePreferenceProviderProps) => {\n const { children, initialPreference = getInitialThemePreference() } = props;\n const [themePreference, setThemePreference] = useState<ThemePreference>(initialPreference);\n\n useEffect(() => {\n applyThemePreference(themePreference);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(STORAGE_KEY, themePreference);\n }\n }, [themePreference]);\n\n const toggleThemePreference = () => setThemePreference((prev) => (prev === \"dark\" ? \"light\" : \"dark\"));\n\n return (\n <ThemePreferenceContext value={{ themePreference, setThemePreference, toggleThemePreference }}>\n {children}\n </ThemePreferenceContext>\n );\n};\n\nexport const useThemePreference = () => {\n const context = useContext(ThemePreferenceContext);\n\n if (!context) {\n throw new Error(\"useThemePreference must be used within a ThemePreferenceProvider\");\n }\n\n return context;\n};\n"],"names":["AlertMessage","React","forwardRef","props","ref","$","_c","children","endElement","icon","rest","startElement","title","t0","jsx","ChakraAlert","t1","jsxs","t2","Breadcrumb","LinkComponent","items","separator","separatorGap","linkComponent","length","item","index","last","isInteractive","Boolean","url","onClick","itemContent","ChakraBreadcrumb","map","Checkbox","inputProps","rootRef","disabled","undefined","interactiveCursor","ChakraCheckbox","t3","t4","t5","customTheme","base","inherit","rules","colors","CodeEditor","defaultCode","code","showLineNumbers","isEditable","language","onChange","disableScroll","Symbol","for","enabled","scrollbar","vertical","horizontal","useShadows","alwaysConsumeMouseWheel","scrollBeyondLastLine","mouseWheelScrollSensitivity","overviewRulerLanes","tabSize","minimap","fontSize","readOnly","lineNumbers","options","t6","value","t7","Editor","_temp","_temp2","CodeDiffEditor","original","modified","originalEditable","renderSideBySide","useInlineViewWhenSpaceIsTooSmall","DiffEditor","_temp3","_temp4","monaco","editor","defineTheme","monaco_0","setTheme","languages","typescript","typescriptDefaults","setCompilerOptions","JsxEmit","addCommand","KeyMod","CtrlCmd","KeyCode","KeyS","getAction","run","_","ContentPlaceholder","backgroundClip","backgroundImage","display","width","Box","Label","Text","DeleteConfirmationModal","isDeleting","setIsDeleting","useState","headline","buttonText","notificationText","onDelete","open","onClose","handleDelete","Dialog","CloseButton","Stack","Button","DiffCard","diff","isExpanded","setIsExpanded","filePath","newPath","oldPath","additions","deletions","event","stopPropagation","ChevronDown","ChevronRight","IconButton","change","t8","DiffBubble","t9","Grid","t10","newContent","oldContent","t11","DiffDrawer","diffs","scrollRef","useRef","virtualizer","useVirtualizer","count","getScrollElement","current","estimateSize","overscan","ScrollArea","p","spaceY","EmptyState","height","getTotalSize","getVirtualItems","virtualItem","measureElement","transform","start","key","getEntryKey","entry","version","date","getChangeKey","ChangelogDate","Timeline","Flex","DocsChangelog","entries","description","Heading","tag","Badge","changeIndex","List","link","Link","entryIndex","md","tags","HStack","image","Image","changes","HEADING_REGEX","HEADING_SELECTOR","isHeadingLevelMatch","element","level","classList","contains","slugifyHeading","toLowerCase","replace","extractHeadings","markdown","headings","headingIndex","match","matchAll","text","trim","id","push","matchHeadingElements","doc","elements","Array","from","querySelectorAll","elementsByHeadingId","Map","headingIdByElement","nextElementIndex","heading","elementIndex","elementText","textContent","set","DocsOutlineItem","isActive","emphasized","variant","onSelect","isLine","borderStartColor","color","DocsOutline","rootMargin","env","useEnvironmentContext","activeHeadingId","setActiveHeadingId","isMobileOpen","setIsMobileOpen","headingElementsMatchRef","extractedHeadings","useEffect","headingsForObserver","getDocument","win","getWindow","nextMatch","size","observer","IntersectionObserver","visibleEntries","filter","sort","target","nextActiveHeadingId","get","keys","observe","disconnect","activeHeading","find","headingId","headingElement","scrollIntoView","behavior","block","handleHeadingSelect","details","Icon","FileText","t12","Fragment","t13","t14","t15","t16","t17","Collapsible","t18","heading_0","T0","t19","t20","t21","t22","t23","t24","t25","T1","t26","t27","heading_1","t28","t29","t30","isIntersecting","first","second","boundingClientRect","top","DocsPaginationLink","direction","isPrevious","directionText","ChevronLeft","href","DocsPagination","previous","next","ItemSection","defaultOpen","action","background","e","menuItemVariantStyles","default","paddingX","paddingY","minHeight","iconSize","primaryTextStyle","secondaryMarginLeft","secondaryTextStyle","compact","MenuItemContent","primaryLabel","tooltipLabel","secondaryLabel","leftIcon","leftSlot","rightIcon","leftIconColor","rightIconColor","leftIconSize","rightIconSize","rightIconAriaLabel","rightTooltipLabel","onRightIconClick","tagLabel","tagColorPalette","tagVariant","variantStyles","isRightIconInteractive","preventDefault","handleRightIconMouseDown","event_0","handleRightIconClick","placement","Tooltip","MenuItem","asChild","isDisabled","isSelected","tabIndex","maxWidth","setRefElement","onMouseDown","onMouseEnter","backgroundColor","resolvedLeftIconSize","resolvedRightIconSize","contentProps","bg","role","overflow","position","cursor","_hover","_focus","textDecoration","commonProps","bb0","child","Children","only","isValidElement","ChakraMenuItem","cloneElement","panelMenuVariantStyles","headerHeight","headerPadding","headerTextStyle","contentPadding","contentGap","PanelMenu","styles","DocsSidebarEntry","activeLink","onSelectLink","shouldStartOpen","hasChildren","Menu","DocsSidebar","emptyMessage","menuItems","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","console","handleReset","setState","onReset","render","fallback","label","ErrorFallback","message","AbsoluteCenter","getEntryIcon","isDirectory","isGitRepo","FolderOpen","Folder","FolderPickerListEntry","selectedPath","selectedPathSet","onEntryClick","path","has","isAlreadySelected","handleClick","name","FolderPickerDialog","currentPath","selectedPaths","isLoading","isSelectDisabled","onSelectHomeDirectory","onSelectParentDirectory","Set","Home","ChevronUp","padding","HorizontalMenuStack","getNoticeKey","notice","getNoticeTitle","OpenSourceNoticesScreen","notices","productName","productVersion","generatedAt","emptyTitle","emptyDescription","Separator","license","copyright","homepageUrl","sourceUrl","attribution","Properties","Info","resolveSessionIndicatorIcon","status","CircleCheck","CircleAlert","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","boxSize","ariaLabel","values","includes","SidebarActionButton","sectionId","nodeId","onAction","SidebarRowActions","actions","opacity","pointerEvents","SidebarNodeRow","node","expandedNodes","activeNodeId","onNavigate","onToggleNode","expanded","isNavigable","navigationIntent","paddingLeft","canLink","intent","transition","rowContent","className","justify","align","borderRadius","px","py","pl","rowStyles","childNode","SidebarTree","sections","expandedSections","onToggleSection","section","sectionExpanded","nodes","emptyState","DEFAULT_SNAPSHOT","SIDEBAR_STORE_NAMESPACE","toStorageName","storageKey","createNoopStorage","getItem","setItem","removeItem","toggleId","setExpanded","getPersistedSnapshot","createSidebarNextStore","initialState","snapshot","createStore","persist","openSidebar","closeSidebar","toggleSidebar","toggleSection","toggleNode","setSectionExpanded","setNodeExpanded","reset","storage","createJSONStorage","globalThis","localStorage","partialize","sidebarStoreRegistry","getSidebarNextStore","existingStore","store","useSidebarNextStore","selector","useStore","SidebarNextFooter","SidebarNextHeader","PanelLeftClose","SidebarNext","header","footer","closable","emptyLabel","onOpenChange","_temp5","_temp6","state_0","state_1","state_2","state_3","state_4","Switch","thumbLabel","trackLabel","ChakraSwitch","off","on","SectionLabel","Dropdown","option","selectedLabel","option_0","DisplayMenu","settings","groupingOptions","orderingOptions","displayPropertyOptions","onViewModeChange","onColumnGroupingChange","onRowGroupingChange","onOrderingFieldChange","onSortDirectionToggle","onDisplayPropertyToggle","offset","mainAxis","Settings2","SegmentGroup","KanbanSquare","viewMode","rowGrouping","columnGrouping","o","ordering","field","ArrowDownUp","displayProperties","Popover","Portal","getActiveFilterCount","filters","Object","reduce","sum","FilterMenu","categories","countsByCategory","onToggleFilterValue","onClearFilter","onClearAll","activeCategoryId","setActiveCategoryId","category","activeCategory","activeFilterCount","Filter","category_0","selectedValues","checked","TicketCard","ticketId","parentPath","sessionIndicatorLabel","sessionIndicatorStatus","badges","diffAdditions","diffDeletions","draggable","onDragStart","onDragEnd","onDiffBadgeClick","onSessionIndicatorClick","handleDiffBadgeClick","handleSessionIndicatorClick","borderColor","boxShadow","join","GitBranchIcon","Wrap","badge","TicketBoard","columns","selectedItemId","onMoveItem","onMoveToGroup","onCreateStart","onColumnAction","activeColumn","setActiveColumn","activeGroup","setActiveGroup","handleDragStart","handleDragEnd","columnId","dataTransfer","dropEffect","handleDragOver","event_1","currentTarget","relatedTarget","handleDragLeave","columnId_0","event_2","itemId_0","getData","itemId","handleDrop","alignItems","gap","pb","minH","column","borderLeft","canDragIn","ColumnHeader","margin","ps","pe","groups","group","groupId","GroupSection","canDragOut","event_3","event_4","event_5","itemId_1","cardProps","isDropTarget","onGroupDragOver","onGroupDragLeave","onGroupDrop","Spacer","canCreate","Plus","MoreHorizontal","setData","effectAllowed","v","cell","row","TicketCell","TicketList","onItemClick","table","useReactTable","data","onExpandedChange","getSubRows","getCoreRowModel","getExpandedRowModel","getRowId","getRowModel","rows","canExpand","getCanExpand","toggleExpanded","flexRender","getVisibleCells","columnDef","getContext","depth","ExpandToggle","TreeConnector","statusColor","statusIcon","assigneeIcon","getIsExpanded","FALLBACK_LABELS","assignee","normalize","getGroupingValue","ticket","grouping","compareGroupKey","a","b","localeCompare","numeric","orderByDirection","orderTickets","tickets","left","Date","updatedAt","getTime","right","groupTickets","knownColumnKeys","groupedByColumn","columnKey","columnTickets","groupedByRow","rowKey","rowTickets","getTicketFilterValues","labels","filterTickets","activeFilters","every","some","countFilterValues","counts","DEFAULT_WORKSPACE_SETTINGS","DEFAULT_GROUPING_OPTIONS","DEFAULT_ORDERING_OPTIONS","DEFAULT_DISPLAY_PROPERTY_OPTIONS","WORKSPACE_STORE_NAMESPACE","toggleValue","createTicketsWorkspaceStore","setViewMode","setColumnGrouping","setRowGrouping","setOrdering","setOrderingField","toggleSortDirection","toggleDisplayProperty","property","setFilter","toggleFilterValue","currentValues","nextValues","nextFilters","clearFilter","clearAllFilters","workspaceStoreRegistry","getTicketsWorkspaceStore","useTicketsWorkspaceStore","toTitleCase","replaceAll","split","chunk","toUpperCase","slice","filterValueGetters","collectCategoryOptions","ticketValues","add","buildDefaultFilterCategories","toBadges","toLocaleDateString","TicketsWorkspace","selectedTicketId","filterCategories","knownColumnKeysProp","onTicketClick","onMoveTicket","onCreateTicket","getBoardColumnConfig","_temp7","_temp8","_temp9","_temp0","_temp1","categoryOptions","listItems","visibleTickets","fromEntries","c","_temp10","grouped","toListItem","ticket_0","toGroupListItem","ticket_1","group_0","tickets_0","ticket_2","toBoardItems","columnConfig","orderedTickets","row_0","boardColumns","state_5","state_6","state_7","state_8","state_9","toaster","createToaster","pauseOnPageIdle","Toaster","ChakraToaster","mdDown","toast","Toast","type","Spinner","applyThemePreference","theme","document","root","documentElement","body","opposite","el","remove","setAttribute","style","colorScheme","STORAGE_KEY","ThemePreferenceContext","createContext","getInitialThemePreference","window","stored","matchMedia","matches","ThemePreferenceProvider","initialPreference","themePreference","setThemePreference","toggleThemePreference","useThemePreference","context","useContext","Error","prev"],"mappings":"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"}
|