@pstdio/ui 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{MermaidComponent-BCMQqPqu.js → MermaidComponent-BPiVFNYK.js} +2 -2
- package/dist/{MermaidComponent-BCMQqPqu.js.map → MermaidComponent-BPiVFNYK.js.map} +1 -1
- package/dist/chat-ui.js +1618 -1102
- package/dist/chat-ui.js.map +1 -1
- package/dist/{checkbox-D5AzFRlb.js → checkbox-B2zYVemL.js} +28 -28
- package/dist/checkbox-B2zYVemL.js.map +1 -0
- package/dist/components/chat-ui/components/chat-input-actions.d.ts +1 -0
- package/dist/components/chat-ui/components/chat-input.d.ts +8 -2
- package/dist/components/chat-ui/components/chat-panel.d.ts +11 -5
- package/dist/components/chat-ui/components/composer-constants.d.ts +1 -0
- package/dist/components/chat-ui/components/conversation-browse.d.ts +22 -0
- package/dist/components/chat-ui/components/message-types.d.ts +14 -0
- package/dist/components/chat-ui/components/queued-follow-up-list-state.d.ts +4 -0
- package/dist/components/chat-ui/components/queued-follow-up-list.d.ts +11 -0
- package/dist/components/chat-ui/components/timeline.d.ts +5 -0
- package/dist/components/chat-ui/components/working-indicator.d.ts +9 -0
- package/dist/components/chat-ui/components/workspace-hub.d.ts +8 -1
- package/dist/components/chat-ui/index.d.ts +4 -2
- package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +2 -2
- package/dist/components/chat-ui/tool-rendering/question-prompt.d.ts +9 -0
- package/dist/components/data-table/build-columns.d.ts +13 -2
- package/dist/components/data-table/categorical-color-cell.d.ts +8 -0
- package/dist/components/data-table/color-cell-style.d.ts +13 -0
- package/dist/components/data-table/color-scale-cell.d.ts +7 -0
- package/dist/components/data-table/data-table-column-menu.d.ts +15 -0
- package/dist/components/data-table/data-table-header.d.ts +10 -0
- package/dist/components/data-table/data-table-stat-chart.d.ts +21 -0
- package/dist/components/data-table/data-table-state.d.ts +27 -0
- package/dist/components/data-table/data-table-stats-row.d.ts +11 -0
- package/dist/components/data-table/data-table-stats.d.ts +19 -0
- package/dist/components/data-table/data-table-table-parts.d.ts +21 -0
- package/dist/components/data-table/data-table.story-descriptions.d.ts +6 -0
- package/dist/components/data-table/data-table.story-fixtures.d.ts +6 -0
- package/dist/components/data-table/editable-cells-story.d.ts +9 -0
- package/dist/components/data-table/friendly-json-display.d.ts +31 -0
- package/dist/components/data-table/index.d.ts +3 -1
- package/dist/components/data-table/json-cell.d.ts +6 -0
- package/dist/components/data-table/pagination-footer.d.ts +4 -1
- package/dist/components/data-table/selection-toolbar.d.ts +3 -1
- package/dist/components/data-table/types.d.ts +72 -0
- package/dist/components/diff-viewer/code-editor.d.ts +2 -0
- package/dist/components/diff-viewer/index.d.ts +1 -1
- package/dist/components/diff-viewer/monaco-browser.d.ts +1 -0
- package/dist/components/{data-renderer → kanban-renderer}/display-menu.d.ts +4 -4
- package/dist/components/{data-renderer → kanban-renderer}/filter-menu.d.ts +3 -3
- package/dist/components/kanban-renderer/index.d.ts +19 -0
- package/dist/components/kanban-renderer/kanban-renderer-attribute-badge.d.ts +7 -0
- package/dist/components/{data-renderer/data-renderer-board-column-header.d.ts → kanban-renderer/kanban-renderer-board-column-header.d.ts} +2 -2
- package/dist/components/{data-renderer/data-renderer-board-group-section.d.ts → kanban-renderer/kanban-renderer-board-group-section.d.ts} +2 -2
- package/dist/components/{data-renderer/data-renderer-board-move.d.ts → kanban-renderer/kanban-renderer-board-move.d.ts} +3 -3
- package/dist/components/{data-renderer/data-renderer-board.d.ts → kanban-renderer/kanban-renderer-board.d.ts} +15 -14
- package/dist/components/{data-renderer/data-renderer-card.d.ts → kanban-renderer/kanban-renderer-card.d.ts} +4 -3
- package/dist/components/{data-renderer/data-renderer-content.d.ts → kanban-renderer/kanban-renderer-content.d.ts} +8 -8
- package/dist/components/kanban-renderer/kanban-renderer-create-dialog.d.ts +12 -0
- package/dist/components/kanban-renderer/kanban-renderer-create-field.d.ts +10 -0
- package/dist/components/kanban-renderer/kanban-renderer-grouping.d.ts +23 -0
- package/dist/components/{data-renderer/data-renderer-helpers.d.ts → kanban-renderer/kanban-renderer-helpers.d.ts} +15 -15
- package/dist/components/kanban-renderer/kanban-renderer-list-items.d.ts +25 -0
- package/dist/components/kanban-renderer/kanban-renderer-list.d.ts +43 -0
- package/dist/components/{data-renderer/data-renderer-story-fixtures.d.ts → kanban-renderer/kanban-renderer-story-fixtures.d.ts} +3 -2
- package/dist/components/kanban-renderer/kanban-renderer-toolbar.d.ts +15 -0
- package/dist/components/kanban-renderer/kanban-renderer-view-bar.d.ts +14 -0
- package/dist/components/kanban-renderer/kanban-renderer-views.d.ts +12 -0
- package/dist/components/{data-renderer/data-renderer.d.ts → kanban-renderer/kanban-renderer.d.ts} +11 -8
- package/dist/components/{data-renderer → kanban-renderer}/types.d.ts +51 -8
- package/dist/components/kanban-renderer/use-kanban-renderer-store.d.ts +78 -0
- package/dist/components/layout/index.d.ts +1 -0
- package/dist/components/layout/panel-header.constants.d.ts +2 -0
- package/dist/components/layout/resizable-split-layout.d.ts +3 -2
- package/dist/components/layout/resizable-split-layout.geometry.d.ts +56 -0
- package/dist/components/layout/resizable-split-layout.handle.d.ts +6 -2
- package/dist/components/layout/resizable-split-layout.panels.d.ts +25 -0
- package/dist/components/list-row/list-row-actions.d.ts +1 -0
- package/dist/components/list-row/list-row-content.d.ts +7 -0
- package/dist/components/list-row/list-row.types.d.ts +4 -1
- package/dist/components/overlays/attached-menu.d.ts +6 -0
- package/dist/components/overlays/attachment-chip.d.ts +13 -0
- package/dist/components/overlays/index.d.ts +6 -2
- package/dist/components/overlays/resource-context-menu.d.ts +13 -1
- package/dist/components/overlays/searchable-menu-input.d.ts +9 -0
- package/dist/components/param-editor/index.d.ts +6 -2
- package/dist/components/param-editor/inputs/action-input.d.ts +1 -0
- package/dist/components/param-editor/inputs/boolean-input.d.ts +13 -0
- package/dist/components/param-editor/inputs/color-input.d.ts +1 -0
- package/dist/components/param-editor/inputs/date-input.d.ts +1 -0
- package/dist/components/param-editor/inputs/file-upload-input.d.ts +15 -0
- package/dist/components/param-editor/inputs/file-upload-value.d.ts +7 -0
- package/dist/components/param-editor/inputs/horizontal-text-input.d.ts +1 -0
- package/dist/components/param-editor/inputs/markdown-input.d.ts +13 -0
- package/dist/components/param-editor/inputs/number-input.d.ts +1 -0
- package/dist/components/param-editor/inputs/range-input.d.ts +1 -0
- package/dist/components/param-editor/inputs/resource-input.d.ts +2 -0
- package/dist/components/param-editor/inputs/segmented-input.d.ts +1 -0
- package/dist/components/param-editor/inputs/selection-input.d.ts +7 -6
- package/dist/components/param-editor/inputs/selection-menu.d.ts +33 -0
- package/dist/components/param-editor/inputs/text-input.d.ts +1 -0
- package/dist/components/param-editor/param-editor-advanced-field.d.ts +14 -0
- package/dist/components/param-editor/param-editor-control-fixtures.d.ts +24 -0
- package/dist/components/param-editor/param-editor-field.d.ts +2 -0
- package/dist/components/param-editor/param-editor-horizontal.d.ts +3 -2
- package/dist/components/param-editor/param-editor-label.d.ts +1 -0
- package/dist/components/param-editor/param-editor-presentation.d.ts +3 -0
- package/dist/components/param-editor/param-editor-read-only-field.d.ts +9 -0
- package/dist/components/param-editor/param-editor-section.d.ts +1 -0
- package/dist/components/param-editor/param-editor.d.ts +1 -0
- package/dist/components/param-editor/param-editor.types.d.ts +59 -18
- package/dist/components/param-editor/resolve-param-value.d.ts +2 -0
- package/dist/components/primitives/chip.d.ts +4 -0
- package/dist/components/primitives/index.d.ts +2 -0
- package/dist/components/primitives/resource-badge.d.ts +12 -10
- package/dist/components/rich-text/index.d.ts +1 -0
- package/dist/components/rich-text/lazy-markdown-editor.d.ts +2 -0
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuPlugin.d.ts +2 -1
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/hooks/useContextLookup.d.ts +2 -1
- package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/ReferencePlugin.d.ts +2 -1
- package/dist/components/rich-text/prompt-input/prompt-input.d.ts +3 -2
- package/dist/components/rich-text/types.d.ts +1 -1
- package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -1
- package/dist/components/{sidebar/sidebar-footer.d.ts → sidenav/sidenav-footer.d.ts} +2 -2
- package/dist/components/{sidebar/sidebar-header.d.ts → sidenav/sidenav-header.d.ts} +2 -2
- package/dist/components/sidenav/sidenav.d.ts +2 -0
- package/dist/components/sidenav/sidenav.store.d.ts +49 -0
- package/dist/components/{sidebar/sidebar.types.d.ts → sidenav/sidenav.types.d.ts} +5 -5
- package/dist/components/tab-strip/tab-visibility-filter.d.ts +1 -0
- package/dist/components/terminal/terminal.d.ts +11 -0
- package/dist/components/tree-list/tree-list-visibility-filter.d.ts +0 -1
- package/dist/components/tree-list/tree-list.d.ts +1 -1
- package/dist/components/tree-list/tree-list.types.d.ts +4 -0
- package/dist/data-table.js +1321 -0
- package/dist/data-table.js.map +1 -0
- package/dist/diff.js +370 -366
- package/dist/diff.js.map +1 -1
- package/dist/font/css/prompt-studio-icons.css +690 -0
- package/dist/font/prompt-studio-icons.eot +0 -0
- package/dist/font/prompt-studio-icons.svg +1 -0
- package/dist/font/prompt-studio-icons.ttf +0 -0
- package/dist/font/prompt-studio-icons.woff +0 -0
- package/dist/font/prompt-studio-icons.woff2 +0 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1854 -3381
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer-toolbar-Db1mIWWd.js +1318 -0
- package/dist/kanban-renderer-toolbar-Db1mIWWd.js.map +1 -0
- package/dist/kanban-renderer.js +1101 -0
- package/dist/kanban-renderer.js.map +1 -0
- package/dist/lazy-markdown-editor-DwhqQ-NN.js +26 -0
- package/dist/lazy-markdown-editor-DwhqQ-NN.js.map +1 -0
- package/dist/list-row-BYWwcbGK.js +823 -0
- package/dist/list-row-BYWwcbGK.js.map +1 -0
- package/dist/markdown-DDd2ESoH.js +743 -0
- package/dist/markdown-DDd2ESoH.js.map +1 -0
- package/dist/markdown-editor-CYVkzt8t.js +741 -0
- package/dist/markdown-editor-CYVkzt8t.js.map +1 -0
- package/dist/monaco-browser-CO0NxK_Z.js +19 -0
- package/dist/monaco-browser-CO0NxK_Z.js.map +1 -0
- package/dist/param-editor-BCZOw5Gt.js +140 -0
- package/dist/param-editor-BCZOw5Gt.js.map +1 -0
- package/dist/param-editor-field-ZzZwgjZ_.js +2094 -0
- package/dist/param-editor-field-ZzZwgjZ_.js.map +1 -0
- package/dist/resource-badge-CuItchgL.js +98 -0
- package/dist/resource-badge-CuItchgL.js.map +1 -0
- package/dist/rich-message--eRzjWYK.js +730 -0
- package/dist/rich-message--eRzjWYK.js.map +1 -0
- package/dist/rich-text.js +114 -827
- package/dist/rich-text.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/terminal.js +197 -177
- package/dist/terminal.js.map +1 -1
- package/dist/theme/primitives/fonts.d.ts +3 -0
- package/dist/theme/primitives/sizes.d.ts +23 -0
- package/dist/theme/recipes/badge.d.ts +8 -0
- package/dist/theme/recipes/button.d.ts +6 -0
- package/dist/theme/recipes/color-picker.d.ts +18 -1
- package/dist/theme/recipes/switch.d.ts +17 -0
- package/dist/theme/recipes/tabs.d.ts +4 -4
- package/dist/theme/tokens/colors.d.ts +18 -24
- package/dist/{theme-CJBYBJaA.js → theme-poQlUgt0.js} +414 -240
- package/dist/theme-poQlUgt0.js.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/tree-list-BAja2eXU.js +1033 -0
- package/dist/tree-list-BAja2eXU.js.map +1 -0
- package/package.json +11 -4
- package/dist/checkbox-D5AzFRlb.js.map +0 -1
- package/dist/components/data-renderer/card-interaction-guard.d.ts +0 -2
- package/dist/components/data-renderer/data-renderer-attribute-badge.d.ts +0 -7
- package/dist/components/data-renderer/data-renderer-grouping.d.ts +0 -23
- package/dist/components/data-renderer/data-renderer-list.d.ts +0 -39
- package/dist/components/data-renderer/data-renderer-toolbar.d.ts +0 -12
- package/dist/components/data-renderer/index.d.ts +0 -18
- package/dist/components/data-renderer/use-data-renderer-store.d.ts +0 -59
- package/dist/components/param-editor/inputs/file-accept.d.ts +0 -22
- package/dist/components/param-editor/inputs/file-drop-input.d.ts +0 -14
- package/dist/components/sidebar/sidebar.d.ts +0 -2
- package/dist/components/sidebar/sidebar.store.d.ts +0 -49
- package/dist/data-renderer.js +0 -1669
- package/dist/data-renderer.js.map +0 -1
- package/dist/list-row-mi3Hn-Um.js +0 -740
- package/dist/list-row-mi3Hn-Um.js.map +0 -1
- package/dist/resource-badge-qCWHP-wQ.js +0 -99
- package/dist/resource-badge-qCWHP-wQ.js.map +0 -1
- package/dist/rich-message-DBf_5YlW.js +0 -1450
- package/dist/rich-message-DBf_5YlW.js.map +0 -1
- package/dist/theme-CJBYBJaA.js.map +0 -1
- package/dist/tree-list-CcuZMLS5.js +0 -930
- package/dist/tree-list-CcuZMLS5.js.map +0 -1
- package/dist/workspace-badge-Fuo-1zPj.js +0 -314
- package/dist/workspace-badge-Fuo-1zPj.js.map +0 -1
- /package/dist/components/{data-renderer/data-renderer-badge-helpers.d.ts → kanban-renderer/kanban-renderer-badge-helpers.d.ts} +0 -0
- /package/dist/components/{data-renderer/data-renderer-enum-helpers.d.ts → kanban-renderer/kanban-renderer-enum-helpers.d.ts} +0 -0
- /package/dist/components/{data-renderer → kanban-renderer}/use-resolved-attributes.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"param-editor-field-ZzZwgjZ_.js","sources":["../src/components/overlays/attachment-chip.tsx","../src/components/param-editor/param-editor-label.tsx","../src/components/param-editor/param-editor-control-item.tsx","../src/components/primitives/chip.tsx","../src/components/primitives/icon-color-picker.tsx","../src/components/primitives/session-indicator.tsx","../src/components/primitives/switch.tsx","../src/components/primitives/workspace-badge.tsx","../src/components/param-editor/inputs/selection-menu.tsx","../src/components/param-editor/inputs/action-input.tsx","../src/components/param-editor/inputs/anchor-grid.ts","../src/components/param-editor/param-editor-read-only-value.tsx","../src/components/param-editor/inputs/anchor-grid-input.tsx","../src/components/param-editor/inputs/boolean-input.tsx","../src/components/param-editor/inputs/color-input.tsx","../src/components/param-editor/inputs/date-input.tsx","../src/components/param-editor/inputs/file-upload-value.ts","../src/components/param-editor/inputs/file-upload-input.tsx","../src/components/param-editor/inputs/horizontal-text-input.tsx","../src/components/param-editor/inputs/markdown-input.tsx","../src/components/primitives/number-input.tsx","../src/components/primitives/slider.tsx","../src/components/param-editor/inputs/number-input.tsx","../src/components/param-editor/inputs/numeric-value.ts","../src/components/param-editor/inputs/range-value.ts","../src/components/param-editor/inputs/slider-marks.tsx","../src/components/param-editor/inputs/range-input.tsx","../src/components/param-editor/inputs/resource-input-chips.tsx","../src/components/param-editor/inputs/resource-input.tsx","../src/components/param-editor/inputs/segmented-input.tsx","../src/components/param-editor/inputs/selection-input.tsx","../src/components/param-editor/inputs/text-input.tsx","../src/components/param-editor/param-editor-inline-group.tsx","../src/components/param-editor/inputs/vector-value.ts","../src/components/param-editor/inputs/vector-input.tsx","../src/components/param-editor/resolve-param-value.ts","../src/components/param-editor/param-editor-advanced-field.tsx","../src/components/param-editor/param-editor-presentation.ts","../src/components/param-editor/param-editor-read-only-field.tsx","../src/components/param-editor/param-editor-field.tsx"],"sourcesContent":["import { Badge, chakra, IconButton, Image, Popover, Text } from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\n\nexport interface AttachmentChipProps {\n file: File;\n /** Accessible label for the remove control; the caller owns translation. */\n removeLabel: string;\n disabled?: boolean;\n onRemove: () => void;\n}\n\nconst isImage = (file: File) => file.type.startsWith(\"image/\");\n\nconst formatSize = (bytes: number) => {\n if (bytes < 1024) return `${bytes.toString()} B`;\n if (bytes < 1024 * 1024) return `${Math.round(bytes / 1024).toString()} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n};\n\n/**\n * A file queued for upload, before the resource it belongs to exists. Removal\n * lives on the chip because there is no other surface between picking a file\n * and submitting where a mistaken attachment can be taken back.\n */\nexport const AttachmentChip = (props: AttachmentChipProps) => {\n const { file, removeLabel, disabled, onRemove } = props;\n const [previewUrl, setPreviewUrl] = useState<string | null>(null);\n\n // Object URLs are only needed for image previews; revoke on unmount/file swap\n // so we don't leak blobs while the dialog is open.\n useEffect(() => {\n if (!isImage(file)) return;\n const url = URL.createObjectURL(file);\n setPreviewUrl(url);\n return () => URL.revokeObjectURL(url);\n }, [file]);\n\n const name = (\n <Text as=\"span\" textStyle=\"label/XS/medium\" lineClamp={1} maxW=\"180px\">\n {file.name}\n </Text>\n );\n\n return (\n <Badge variant=\"chip\" gap=\"2xs\" pr=\"2xs\">\n {previewUrl ? (\n <Popover.Root positioning={{ placement: \"top\" }}>\n <Popover.Trigger asChild>\n <chakra.button type=\"button\" cursor=\"pointer\" minW=\"0\" display=\"inline-flex\">\n {name}\n </chakra.button>\n </Popover.Trigger>\n <Popover.Positioner>\n <Popover.Content w=\"auto\" p=\"2xs\" bg=\"bg\">\n <Image src={previewUrl} alt={file.name} maxW=\"240px\" maxH=\"240px\" borderRadius=\"sm\" />\n </Popover.Content>\n </Popover.Positioner>\n </Popover.Root>\n ) : (\n name\n )}\n <Text as=\"span\" textStyle=\"label/XS/regular\" color=\"fg.subtle\">\n {formatSize(file.size)}\n </Text>\n <IconButton size=\"2xs\" variant=\"ghost\" aria-label={removeLabel} disabled={disabled} onClick={onRemove}>\n <X size={12} />\n </IconButton>\n </Badge>\n );\n};\n","import { HStack, Icon, Text } from \"@chakra-ui/react\";\nimport { CircleHelp } from \"lucide-react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\ninterface ParamEditorLabelProps {\n name: string;\n description?: string;\n compact?: boolean;\n}\n\nexport const ParamEditorLabel = (props: ParamEditorLabelProps) => {\n const { name, description, compact = false } = props;\n\n return (\n <HStack gap=\"1\" alignItems=\"center\" minW=\"0\">\n <Text\n textStyle={compact ? \"label/XS/medium\" : \"label/S/medium\"}\n color=\"fg.muted\"\n letterSpacing={compact ? \"0.08em\" : undefined}\n textTransform={compact ? \"uppercase\" : undefined}\n truncate\n >\n {name}\n </Text>\n {description ? (\n <Tooltip content={description}>\n <Icon as={CircleHelp} boxSize=\"12px\" color=\"fg.muted\" opacity={0.6} cursor=\"help\" flexShrink={0} />\n </Tooltip>\n ) : null}\n </HStack>\n );\n};\n","import { Box, Flex } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { ParamEditorFieldLabel } from \"./param-editor-field-label\";\n\ntype ControlItemOrientation = \"auto\" | \"inline\" | \"stacked\";\n\ninterface ParamEditorControlItemProps {\n name?: string;\n description?: string;\n hideLabel?: boolean;\n fullWidth?: boolean;\n /** `auto` renders inline when compact and stacked when full-width. */\n orientation?: ControlItemOrientation;\n /** Rendered on the label row, right-aligned (e.g. an editable value readout). */\n labelTrailing?: ReactNode;\n children: ReactNode;\n}\n\n// Shared row scaffold for control layouts: a labelled control that renders either\n// inline (label left / control right) or stacked (label above the control).\nexport const ParamEditorControlItem = (props: ParamEditorControlItemProps) => {\n const {\n name,\n description,\n hideLabel = false,\n fullWidth = false,\n orientation = \"auto\",\n labelTrailing,\n children,\n } = props;\n\n const label = hideLabel || !name ? null : <ParamEditorFieldLabel name={name} description={description} />;\n const resolved = orientation === \"auto\" ? (fullWidth ? \"stacked\" : \"inline\") : orientation;\n\n if (resolved === \"stacked\") {\n const header = label || labelTrailing;\n return (\n <Box minW=\"0\">\n {header ? (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" gap=\"xs\" mb=\"xs\" minW=\"0\">\n {label}\n {labelTrailing}\n </Flex>\n ) : null}\n {children}\n </Box>\n );\n }\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\" minW=\"0\">\n {label}\n <Flex alignItems=\"center\" gap=\"xs\" minW=\"0\">\n {labelTrailing}\n {children}\n </Flex>\n </Flex>\n );\n};\n","import type { BadgeProps } from \"@chakra-ui/react\";\nimport { Badge } from \"@chakra-ui/react\";\n\nexport interface ChipProps extends Omit<BadgeProps, \"size\" | \"variant\"> {}\n\nexport const Chip = (props: ChipProps) => <Badge size=\"sm\" variant=\"chip\" {...props} />;\n","import { Grid, GridItem, Icon, IconButton, Popover, Text } from \"@chakra-ui/react\";\nimport {\n AlertTriangle,\n BookOpen,\n Bug,\n ChartColumnIncreasing,\n CheckCircle,\n Circle,\n CircleQuestionMark,\n Clock,\n Code,\n Eye,\n Feather,\n Flag,\n Flame,\n Gauge,\n GitPullRequest,\n Layers,\n Lightbulb,\n Scale,\n Shield,\n ShieldAlert,\n Sparkles,\n Star,\n Tag,\n Ticket,\n Wrench,\n} from \"lucide-react\";\nimport type { ComponentType } from \"react\";\n\nexport interface IconColorPickerIconOption {\n value: string | null;\n label: string;\n icon: ComponentType;\n}\n\nexport const optionColors = [\n \"gray\",\n \"red\",\n \"orange\",\n \"yellow\",\n \"green\",\n \"teal\",\n \"blue\",\n \"cyan\",\n \"purple\",\n \"pink\",\n] as const;\n\nexport const optionIcons = [\n { value: \"circle\", label: \"circle\", icon: Circle },\n { value: \"bug\", label: \"bug\", icon: Bug },\n { value: \"sparkles\", label: \"sparkles\", icon: Sparkles },\n { value: \"book-open\", label: \"book open\", icon: BookOpen },\n { value: \"wrench\", label: \"wrench\", icon: Wrench },\n { value: \"gauge\", label: \"gauge\", icon: Gauge },\n { value: \"feather\", label: \"feather\", icon: Feather },\n { value: \"scale\", label: \"scale\", icon: Scale },\n { value: \"layers\", label: \"layers\", icon: Layers },\n { value: \"alert-triangle\", label: \"alert triangle\", icon: AlertTriangle },\n { value: \"star\", label: \"star\", icon: Star },\n { value: \"flag\", label: \"flag\", icon: Flag },\n { value: \"flame\", label: \"flame\", icon: Flame },\n { value: \"lightbulb\", label: \"lightbulb\", icon: Lightbulb },\n { value: \"shield\", label: \"shield\", icon: Shield },\n { value: \"eye\", label: \"eye\", icon: Eye },\n { value: \"clock\", label: \"clock\", icon: Clock },\n { value: \"check-circle\", label: \"check circle\", icon: CheckCircle },\n { value: \"tag\", label: \"tag\", icon: Tag },\n { value: \"ticket\", label: \"ticket\", icon: Ticket },\n { value: \"code\", label: \"code\", icon: Code },\n { value: \"git-pull-request\", label: \"git pull request\", icon: GitPullRequest },\n { value: \"chart-column-increasing\", label: \"chart column increasing\", icon: ChartColumnIncreasing },\n { value: \"circle-question-mark\", label: \"circle question mark\", icon: CircleQuestionMark },\n { value: \"shield-alert\", label: \"shield alert\", icon: ShieldAlert },\n] satisfies IconColorPickerIconOption[];\n\nexport const getIconComponent = (\n name: string | null | undefined,\n iconOptions: readonly IconColorPickerIconOption[] = optionIcons,\n): ComponentType => {\n const entry = iconOptions.find((icon) => icon.value === (name ?? \"circle\"));\n return entry?.icon ?? Circle;\n};\n\nexport interface IconColorPickerProps {\n color: string;\n colorOptions?: readonly string[];\n icon?: string | null;\n iconOptions?: readonly IconColorPickerIconOption[];\n onColorChange: (color: string) => void;\n onIconChange?: (icon: string | null) => void;\n disabled?: boolean;\n showIcons?: boolean;\n \"aria-label\"?: string;\n}\n\nexport const IconColorPicker = (props: IconColorPickerProps) => {\n const {\n color,\n colorOptions = optionColors,\n icon,\n iconOptions = optionIcons,\n onColorChange,\n onIconChange,\n disabled,\n showIcons = true,\n \"aria-label\": ariaLabel = \"Pick color and icon\",\n } = props;\n const IconComponent = showIcons ? getIconComponent(icon, iconOptions) : Circle;\n const selectedIcon = icon ?? \"circle\";\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <IconButton size=\"2xs\" variant=\"ghost\" disabled={disabled} aria-label={ariaLabel}>\n <Icon\n as={IconComponent}\n boxSize=\"14px\"\n color={`${color}.500`}\n fill={showIcons ? undefined : `${color}.500`}\n />\n </IconButton>\n </Popover.Trigger>\n <Popover.Positioner>\n <Popover.Content w={showIcons ? \"320px\" : \"220px\"} p=\"sm\" bg=\"bg\">\n <Text textStyle=\"label/S\" mb=\"xs\">\n Color\n </Text>\n <Grid\n templateColumns={showIcons ? \"repeat(10, 1fr)\" : \"repeat(5, 1fr)\"}\n gap=\"2xs\"\n mb={showIcons ? \"md\" : \"0\"}\n >\n {colorOptions.map((optionColor) => (\n <GridItem key={optionColor}>\n <IconButton\n size=\"2xs\"\n variant={optionColor === color ? \"outline\" : \"ghost\"}\n colorPalette={optionColor}\n onClick={() => onColorChange(optionColor)}\n aria-label={optionColor}\n >\n <Icon as={Circle} boxSize=\"14px\" fill={`${optionColor}.500`} color={`${optionColor}.500`} />\n </IconButton>\n </GridItem>\n ))}\n </Grid>\n {showIcons ? (\n <>\n <Text textStyle=\"label/S\" mb=\"xs\">\n Icon\n </Text>\n <Grid templateColumns=\"repeat(5, 1fr)\" gap=\"2xs\">\n {iconOptions.map((entry) => (\n <GridItem key={entry.value ?? \"none\"}>\n <IconButton\n size=\"2xs\"\n variant={entry.value === selectedIcon ? \"outline\" : \"ghost\"}\n onClick={() => onIconChange?.(entry.value)}\n aria-label={entry.label}\n >\n <Icon as={entry.icon} boxSize=\"14px\" />\n </IconButton>\n </GridItem>\n ))}\n </Grid>\n </>\n ) : null}\n </Popover.Content>\n </Popover.Positioner>\n </Popover.Root>\n );\n};\n","import { Icon } from \"@chakra-ui/react\";\nimport {\n CircleAlert,\n CircleCheck,\n CircleDashed,\n CircleDot,\n CirclePause,\n CircleStop,\n ClockAlert,\n LoaderCircle,\n} from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nexport const sessionCompletionStatuses = [\n \"in_progress\",\n \"awaiting_input\",\n \"queued\",\n \"completed\",\n \"failed\",\n \"cancelled\",\n \"disconnected\",\n] as const;\n\nexport type SessionCompletionStatus = (typeof sessionCompletionStatuses)[number];\n\nexport const resolveSessionIndicatorIcon = (status: SessionCompletionStatus | undefined) => {\n if (status === \"in_progress\") return LoaderCircle;\n if (status === \"completed\") return CircleCheck;\n if (status === \"failed\") return CircleAlert;\n if (status === \"cancelled\") return CircleStop;\n if (status === \"disconnected\") return CirclePause;\n if (status === \"queued\") return ClockAlert;\n if (status === \"awaiting_input\") return CircleDot;\n return CircleDashed;\n};\n\nexport const resolveSessionIndicatorColor = (status: SessionCompletionStatus | undefined) => {\n if (status === \"in_progress\") return \"fg.info\";\n if (status === \"completed\") return \"fg.success\";\n if (status === \"failed\") return \"fg.error\";\n if (status === \"cancelled\") return \"fg.warning\";\n if (status === \"disconnected\") return \"fg.warning\";\n if (status === \"queued\") return \"fg.info\";\n if (status === \"awaiting_input\") return \"fg.warning\";\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 { 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 cursor={interactiveCursor}>\n <ChakraSwitch.Thumb>\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 { Badge, Box, HStack, Icon, Spinner, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, GitBranchIcon, GitCommitIcon } from \"lucide-react\";\nimport type { MouseEvent } from \"react\";\nimport { type SessionCompletionStatus, SessionIndicator } from \"@/components/primitives/session-indicator\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\ninterface WorkspaceAttemptStatus {\n name: string;\n color: string;\n description?: string | null;\n}\n\nconst ATTEMPT_STATUS_COLOR_ALIASES: Record<string, string> = {\n amber: \"yellow\",\n};\n\nconst CHAKRA_COLOR_PALETTES = new Set([\n \"gray\",\n \"red\",\n \"orange\",\n \"yellow\",\n \"green\",\n \"teal\",\n \"blue\",\n \"cyan\",\n \"purple\",\n \"pink\",\n]);\n\nconst workspaceBadgeSurfaceProps = {\n bg: { _light: \"bg.muted\", _dark: \"bg.subtle\" },\n color: \"fg.muted\",\n _hover: { bg: { _light: \"bg.subtle\", _dark: \"bg.hover\" } },\n} as const;\n\nexport interface WorkspaceBadgeProps {\n workspaceType: \"worktree\" | \"current_branch\";\n initializing?: boolean;\n label?: string;\n shorthand?: string;\n attemptStatus?: WorkspaceAttemptStatus;\n sessionStatus?: SessionCompletionStatus;\n showLeadingSessionIndicator?: boolean;\n diffAdditions?: number;\n diffDeletions?: number;\n hasMultipleWorkspaces?: boolean;\n onClick?: () => void;\n onDropdownClick?: () => void;\n onSessionIndicatorClick?: () => void;\n}\n\nconst resolveWorkspaceIcon = (workspaceType: WorkspaceBadgeProps[\"workspaceType\"]) => {\n if (workspaceType === \"current_branch\") {\n return GitCommitIcon;\n }\n\n return GitBranchIcon;\n};\n\nconst resolveAttemptStatusColor = (color: string) => {\n if (color.startsWith(\"#\") || color.startsWith(\"rgb\") || color.startsWith(\"hsl\") || color.startsWith(\"var(\")) {\n return color;\n }\n\n const resolvedColor = ATTEMPT_STATUS_COLOR_ALIASES[color] ?? color;\n if (CHAKRA_COLOR_PALETTES.has(resolvedColor)) {\n return `var(--chakra-colors-${resolvedColor}-500)`;\n }\n\n return resolvedColor;\n};\n\nconst buildAttemptStatusTooltip = (attemptStatus: WorkspaceAttemptStatus | undefined) => {\n if (!attemptStatus) return null;\n\n if (attemptStatus.description) {\n return `${attemptStatus.name}: ${attemptStatus.description}`;\n }\n\n return attemptStatus.name;\n};\n\nconst handleIconClick = (event: MouseEvent<SVGSVGElement>, onClick: (() => void) | undefined) => {\n event.stopPropagation();\n onClick?.();\n};\n\nconst handleBadgeClick = (event: MouseEvent<HTMLSpanElement>, onClick: (() => void) | undefined) => {\n event.stopPropagation();\n onClick?.();\n};\n\nconst LeadingSessionIndicator = (props: {\n sessionStatus?: SessionCompletionStatus;\n onSessionIndicatorClick?: () => void;\n}) => {\n const { sessionStatus, onSessionIndicatorClick } = props;\n\n if (!sessionStatus) {\n return null;\n }\n\n const sessionTooltip = onSessionIndicatorClick ? \"Open latest session\" : \"Latest session status\";\n\n return (\n <Tooltip content={sessionTooltip}>\n <SessionIndicator\n status={sessionStatus}\n boxSize=\"12px\"\n ariaLabel={sessionTooltip}\n cursor=\"pointer\"\n onClick={onSessionIndicatorClick ? (event) => handleIconClick(event, onSessionIndicatorClick) : undefined}\n />\n </Tooltip>\n );\n};\n\nconst WorkspaceTypeIndicator = (props: {\n workspaceType: WorkspaceBadgeProps[\"workspaceType\"];\n initializing: boolean;\n label?: string;\n shorthand?: string;\n}) => {\n const { workspaceType, initializing, label, shorthand } = props;\n const WorkspaceTypeIcon = resolveWorkspaceIcon(workspaceType);\n const displayLabel = label ?? shorthand;\n\n return (\n <HStack as=\"span\" gap=\"2xs\" alignItems=\"center\" color=\"fg.muted\" minW=\"0\">\n <Icon\n as={WorkspaceTypeIcon}\n boxSize=\"3.5\"\n flexShrink={0}\n aria-label={workspaceType === \"worktree\" ? \"Worktree\" : \"Current branch\"}\n />\n {initializing ? <Spinner size=\"xs\" color=\"fg.muted\" /> : null}\n {displayLabel ? (\n <Text as=\"span\" textStyle=\"label/XS/medium\" color=\"fg.muted\" minW=\"0\" maxW=\"10rem\" truncate>\n {displayLabel}\n </Text>\n ) : null}\n </HStack>\n );\n};\n\nconst WorkspaceAttemptStatusIndicator = (props: { attemptStatus?: WorkspaceAttemptStatus }) => {\n const { attemptStatus } = props;\n\n if (!attemptStatus) {\n return null;\n }\n\n return (\n <Tooltip content={buildAttemptStatusTooltip(attemptStatus)}>\n <Box\n as=\"span\"\n boxSize=\"8px\"\n borderRadius=\"full\"\n backgroundColor={resolveAttemptStatusColor(attemptStatus.color)}\n flexShrink={0}\n aria-label={`Attempt status ${attemptStatus.name}`}\n data-testid=\"workspace-attempt-status\"\n />\n </Tooltip>\n );\n};\n\nconst WorkspaceDiffTotals = (props: { diffAdditions?: number; diffDeletions?: number }) => {\n const { diffAdditions, diffDeletions } = props;\n\n if (typeof diffAdditions !== \"number\" || typeof diffDeletions !== \"number\") {\n return null;\n }\n\n return (\n <HStack as=\"span\" gap=\"3xs\" flexShrink={0}>\n <Text as=\"span\" textStyle=\"label/XS/medium\" color=\"fg.success\">\n +{diffAdditions}\n </Text>\n <Text as=\"span\" textStyle=\"label/XS/medium\" color=\"fg.error\">\n -{diffDeletions}\n </Text>\n </HStack>\n );\n};\n\nconst WorkspaceDropdownTrigger = (props: { hasMultipleWorkspaces: boolean; onDropdownClick?: () => void }) => {\n const { hasMultipleWorkspaces, onDropdownClick } = props;\n\n if (!hasMultipleWorkspaces) {\n return null;\n }\n\n return (\n <Icon\n as={ChevronDown}\n boxSize=\"12px\"\n color=\"fg.muted\"\n cursor={onDropdownClick ? \"pointer\" : \"default\"}\n aria-label=\"Workspace selector\"\n onClick={onDropdownClick ? (event) => handleIconClick(event, onDropdownClick) : undefined}\n />\n );\n};\n\nexport const WorkspaceBadge = (props: WorkspaceBadgeProps) => {\n const {\n workspaceType,\n initializing = false,\n label,\n shorthand,\n attemptStatus,\n sessionStatus,\n showLeadingSessionIndicator = true,\n diffAdditions,\n diffDeletions,\n hasMultipleWorkspaces = false,\n onClick,\n onDropdownClick,\n onSessionIndicatorClick,\n } = props;\n\n return (\n <Badge\n as=\"span\"\n display=\"inline-flex\"\n gap=\"2xs\"\n alignItems=\"center\"\n minW=\"0\"\n maxW=\"100%\"\n variant=\"subtle\"\n {...workspaceBadgeSurfaceProps}\n textStyle=\"label/XS/medium\"\n cursor={onClick || onDropdownClick || hasMultipleWorkspaces ? \"pointer\" : \"default\"}\n transition=\"background-color 0.2s ease-in-out\"\n onClick={onClick ? (event) => handleBadgeClick(event, onClick) : undefined}\n data-testid=\"workspace-badge\"\n >\n {showLeadingSessionIndicator ? (\n <LeadingSessionIndicator sessionStatus={sessionStatus} onSessionIndicatorClick={onSessionIndicatorClick} />\n ) : null}\n <WorkspaceTypeIndicator\n workspaceType={workspaceType}\n initializing={initializing}\n label={label}\n shorthand={shorthand}\n />\n <WorkspaceAttemptStatusIndicator attemptStatus={attemptStatus} />\n <WorkspaceDiffTotals diffAdditions={diffAdditions} diffDeletions={diffDeletions} />\n <WorkspaceDropdownTrigger hasMultipleWorkspaces={hasMultipleWorkspaces} onDropdownClick={onDropdownClick} />\n </Badge>\n );\n};\n","import { Button, Flex, Icon, IconButton, Menu } from \"@chakra-ui/react\";\nimport { Check, ChevronDown, Square, SquareCheck } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { ListRow } from \"../../list-row/list-row\";\nimport { getIconComponent } from \"../../primitives\";\n\nexport interface SelectionMenuOption {\n id: string;\n name: string;\n icon?: string;\n /** Palette key (e.g. \"blue\") applied to the option's icon. */\n color?: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport interface SelectionMenuProps {\n triggerLabel: ReactNode;\n options: SelectionMenuOption[];\n selectedIds: string[];\n multiSelect: boolean;\n disabled?: boolean;\n fullWidth?: boolean;\n triggerVariant?: \"button\" | \"icon\";\n triggerAriaLabel?: string;\n size?: \"xs\" | \"sm\";\n onToggle: (optionId: string) => void;\n}\n\nexport const selectionIndicator = (multiSelect: boolean, selected: boolean) => {\n if (multiSelect)\n return <Icon as={selected ? SquareCheck : Square} boxSize=\"14px\" color={selected ? \"fg\" : \"fg.muted\"} />;\n return selected ? <Icon as={Check} boxSize=\"14px\" color=\"fg\" /> : null;\n};\n\nexport const selectionOptionIcon = (option: SelectionMenuOption | undefined, boxSize: string) => {\n if (!option) return null;\n return (\n <Icon\n as={getIconComponent(option.icon ?? null)}\n boxSize={boxSize}\n color={option.color ? `${option.color}.500` : \"fg.muted\"}\n />\n );\n};\n\n/**\n * The single dropdown behind every option picker in the editor — selection\n * params and editable resource params alike. Sharing it is what keeps a\n * resource attribute and a command param from drifting into two looks.\n *\n * Single-selects clear by re-picking the selected option; a dedicated \"none\"\n * row would read as just another value to choose.\n */\nexport const SelectionMenu = (props: SelectionMenuProps) => {\n const {\n triggerLabel,\n options,\n selectedIds,\n multiSelect,\n disabled,\n fullWidth,\n triggerVariant = \"button\",\n triggerAriaLabel,\n size = \"sm\",\n onToggle,\n } = props;\n const trigger =\n triggerVariant === \"icon\" ? (\n <IconButton aria-label={triggerAriaLabel ?? \"Open options\"} size=\"2xs\" variant=\"ghost\" disabled={disabled}>\n {triggerLabel}\n </IconButton>\n ) : (\n <Button\n size={size}\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor=\"border\"\n disabled={disabled}\n textStyle={size === \"xs\" ? \"label/XS\" : \"label/S/regular\"}\n width={fullWidth ? \"100%\" : undefined}\n _hover={{ bg: \"bg.hover\", borderColor: \"border.accent-light\" }}\n _active={{ bg: \"bg.active\", borderColor: \"border.accent-light\" }}\n _expanded={{ bg: \"bg.active\", borderColor: \"border.accent-light\" }}\n _focusVisible={{ borderColor: \"border.accent-light\", outline: \"none\", boxShadow: \"none\" }}\n >\n <Flex alignItems=\"center\" justifyContent=\"space-between\" gap=\"xs\" w={fullWidth ? \"full\" : undefined}>\n <Flex alignItems=\"center\" gap=\"xs\">\n {triggerLabel}\n </Flex>\n <ChevronDown size={14} />\n </Flex>\n </Button>\n );\n\n return (\n <Menu.Root closeOnSelect={!multiSelect}>\n <Menu.Trigger asChild>{trigger}</Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content>\n {options.map((option) => {\n const selected = selectedIds.includes(option.id);\n return (\n <Menu.Item key={option.id} value={option.id} disabled={option.disabled} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n role={multiSelect ? \"menuitemcheckbox\" : \"menuitemradio\"}\n aria-checked={selected}\n id={option.id}\n label={option.name}\n icon={selectionOptionIcon(option, \"16px\")}\n tooltip={option.description}\n disabled={option.disabled}\n isSelected={selected}\n endContent={selectionIndicator(multiSelect, selected)}\n onActivate={() => onToggle(option.id)}\n />\n </Menu.Item>\n );\n })}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n );\n};\n","import { Button, Flex } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport type { ActionOption } from \"../param-editor.types\";\nimport { ParamEditorControlItem } from \"../param-editor-control-item\";\nimport { SelectionMenu } from \"./selection-menu\";\n\ninterface ActionInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue?: string;\n options: ActionOption[];\n onChange: (id: string, value: string) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n presentation?: \"stacked\" | \"horizontal\";\n}\n\nexport const ActionInput = (props: ActionInputProps) => {\n const { id, name, description, defaultValue, options, onChange, readOnly, presentation = \"stacked\" } = props;\n const [active, setActive] = useState(defaultValue);\n\n useEffect(() => {\n setActive(defaultValue);\n }, [defaultValue]);\n\n const run = (optionId: string) => {\n setActive(optionId);\n onChange(id, optionId);\n };\n const horizontal = presentation === \"horizontal\";\n const selectedName = options.find((option) => option.id === active)?.name ?? name;\n\n if (horizontal) {\n return (\n <SelectionMenu\n triggerLabel={selectedName}\n options={options}\n selectedIds={active ? [active] : []}\n multiSelect={false}\n disabled={readOnly}\n onToggle={run}\n />\n );\n }\n\n const row = (\n <Flex gap=\"xs\" wrap=\"wrap\">\n {options.map((option) => (\n <Button\n key={option.id}\n size=\"xs\"\n variant={active === option.id ? \"subtle\" : \"outline\"}\n disabled={option.disabled || readOnly}\n _hover={{ bg: \"bg.hover\", borderColor: \"border.accent-light\" }}\n _active={{ bg: \"bg.active\", borderColor: \"border.accent-light\" }}\n _focusVisible={{ borderColor: \"border.accent-light\", outline: \"none\", boxShadow: \"none\" }}\n onClick={() => run(option.id)}\n >\n {option.name}\n </Button>\n ))}\n </Flex>\n );\n\n return (\n <ParamEditorControlItem name={name} description={description} orientation=\"stacked\">\n {row}\n </ParamEditorControlItem>\n );\n};\n","import type { AnchorGridValue } from \"../param-editor.types\";\n\n/** The nine anchors in row-major order (top-left → bottom-right). */\nexport const ANCHOR_GRID_VALUES: AnchorGridValue[] = [\n \"top-left\",\n \"top\",\n \"top-right\",\n \"left\",\n \"center\",\n \"right\",\n \"bottom-left\",\n \"bottom\",\n \"bottom-right\",\n];\n\nexport const isAnchorGridValue = (value: unknown): value is AnchorGridValue =>\n typeof value === \"string\" && (ANCHOR_GRID_VALUES as string[]).includes(value);\n","import { Box, type BoxProps } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\n\ninterface ParamEditorReadOnlyValueProps extends Omit<BoxProps, \"children\"> {\n children: ReactNode;\n preserveWhitespace?: boolean;\n}\n\nexport const ParamEditorReadOnlyValue = (props: ParamEditorReadOnlyValueProps) => {\n const { children, preserveWhitespace = false, ...boxProps } = props;\n\n return (\n <Box minW=\"0\" textStyle=\"label/S/regular\" whiteSpace={preserveWhitespace ? \"pre-wrap\" : undefined} {...boxProps}>\n {children}\n </Box>\n );\n};\n","import { Box, Grid, IconButton } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport type { AnchorGridValue } from \"../param-editor.types\";\nimport { ParamEditorControlItem } from \"../param-editor-control-item\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\nimport { ANCHOR_GRID_VALUES } from \"./anchor-grid\";\n\ninterface AnchorGridInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: AnchorGridValue;\n onChange: (id: string, value: AnchorGridValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n}\n\nexport const AnchorGridInput = (props: AnchorGridInputProps) => {\n const { id, name, description, defaultValue, onChange, readOnly, fullWidth } = props;\n const [value, setValue] = useState<AnchorGridValue>(defaultValue);\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const select = (next: AnchorGridValue) => {\n setValue(next);\n onChange(id, next);\n };\n\n if (readOnly) {\n return (\n <ParamEditorControlItem name={name} description={description} fullWidth={fullWidth}>\n <ParamEditorReadOnlyValue>{value}</ParamEditorReadOnlyValue>\n </ParamEditorControlItem>\n );\n }\n\n const grid = (\n <Grid\n templateColumns=\"repeat(3, 1.5rem)\"\n gap=\"1px\"\n width=\"fit-content\"\n bg=\"border.subtle\"\n p=\"1px\"\n borderRadius=\"sm\"\n overflow=\"hidden\"\n >\n {ANCHOR_GRID_VALUES.map((anchor) => {\n const selected = anchor === value;\n return (\n <IconButton\n key={anchor}\n aria-label={anchor}\n aria-pressed={selected}\n size=\"2xs\"\n variant=\"ghost\"\n bg={selected ? \"fg\" : \"bg\"}\n _hover={{ bg: selected ? \"fg\" : \"bg.muted\" }}\n borderRadius=\"0\"\n onClick={() => select(anchor)}\n >\n <Box boxSize=\"0.375rem\" borderRadius=\"full\" bg={selected ? \"bg\" : \"fg.muted\"} />\n </IconButton>\n );\n })}\n </Grid>\n );\n\n return (\n <ParamEditorControlItem name={name} description={description} orientation={fullWidth ? \"stacked\" : \"inline\"}>\n {grid}\n </ParamEditorControlItem>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { Switch } from \"@/components/primitives/switch\";\nimport { ParamEditorControlItem } from \"../param-editor-control-item\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\n\ninterface BooleanInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: boolean;\n onChange: (id: string, value: boolean) => void;\n readOnly?: boolean;\n hideLabel?: boolean;\n fullWidth?: boolean;\n size?: \"xs\" | \"sm\";\n}\n\nexport const BooleanInput = (props: BooleanInputProps) => {\n const { id, name, description, defaultValue, onChange, readOnly, hideLabel, fullWidth, size = \"sm\" } = props;\n const [value, setValue] = useState(defaultValue);\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n if (readOnly) {\n return (\n <ParamEditorControlItem\n name={name}\n description={description}\n hideLabel={hideLabel}\n fullWidth={fullWidth}\n orientation=\"inline\"\n >\n <ParamEditorReadOnlyValue>{String(value)}</ParamEditorReadOnlyValue>\n </ParamEditorControlItem>\n );\n }\n\n return (\n <ParamEditorControlItem\n name={name}\n description={description}\n hideLabel={hideLabel}\n fullWidth={fullWidth}\n orientation=\"inline\"\n >\n <Switch\n size={size}\n checked={value}\n inputProps={{ \"aria-label\": name }}\n onCheckedChange={(details) => {\n setValue(details.checked);\n onChange(id, details.checked);\n }}\n />\n </ParamEditorControlItem>\n );\n};\n","import { Box, ColorPicker, type ColorPickerValueChangeDetails, Flex, parseColor } from \"@chakra-ui/react\";\nimport { type FocusEvent as ReactFocusEvent, useEffect, useRef, useState } from \"react\";\nimport { ParamEditorLabel } from \"../param-editor-label\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\n\ninterface ColorInputProps {\n id: string;\n defaultValue: string;\n name: string;\n onChange: (id: string, value: string) => void;\n description: string;\n readOnly?: boolean;\n hideLabel?: boolean;\n tooltipPlacement?: \"top\" | \"right\" | \"bottom\" | \"left\";\n fullWidth?: boolean;\n size?: \"xs\" | \"sm\";\n}\n\nexport const ColorInput = (props: ColorInputProps) => {\n const {\n id,\n defaultValue,\n name,\n onChange,\n description,\n readOnly,\n hideLabel = false,\n fullWidth = false,\n size = \"sm\",\n } = props;\n const [value, setValue] = useState(defaultValue);\n const [open, setOpen] = useState(false);\n const rootRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const scheduleChange = (nextColor: string) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onChange(id, nextColor), 540);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n useEffect(() => {\n if (!open) return;\n\n const isInsidePicker = (target: EventTarget | null) => {\n const node = target as Node;\n return rootRef.current?.contains(node) || contentRef.current?.contains(node);\n };\n\n const handleOutsideInteraction = (event: FocusEvent | PointerEvent) => {\n if (isInsidePicker(event.target)) return;\n\n setOpen(false);\n };\n\n document.addEventListener(\"focusin\", handleOutsideInteraction, true);\n document.addEventListener(\"pointerdown\", handleOutsideInteraction, true);\n document.addEventListener(\"click\", handleOutsideInteraction, true);\n\n return () => {\n document.removeEventListener(\"focusin\", handleOutsideInteraction, true);\n document.removeEventListener(\"pointerdown\", handleOutsideInteraction, true);\n document.removeEventListener(\"click\", handleOutsideInteraction, true);\n };\n }, [open]);\n\n const handleChange = (newColor: string) => {\n setValue(newColor);\n scheduleChange(newColor);\n };\n\n const handleBlur = (event: ReactFocusEvent<HTMLDivElement>) => {\n const root = event.currentTarget;\n\n setTimeout(() => {\n if (!root.contains(root.ownerDocument.activeElement)) setOpen(false);\n });\n };\n\n if (readOnly) {\n const valueElement = (\n <ParamEditorReadOnlyValue>\n <Flex alignItems=\"center\" gap=\"xs\">\n <Box boxSize=\"0.75rem\" borderRadius=\"xs\" bg={value} />\n <Box as=\"span\">{value}</Box>\n </Flex>\n </ParamEditorReadOnlyValue>\n );\n\n if (fullWidth) {\n return (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n {valueElement}\n </Box>\n );\n }\n\n return (\n <Box>\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n {valueElement}\n </Flex>\n </Box>\n );\n }\n\n const rootProps = {\n value: parseColor(value),\n open,\n onOpenChange: (details: { open: boolean }) => setOpen(details.open),\n onFocusOutside: () => setOpen(false),\n onInteractOutside: () => setOpen(false),\n onBlur: handleBlur,\n onValueChange: (details: ColorPickerValueChangeDetails) => handleChange(details.value.toString(\"hex\")),\n disabled: readOnly,\n };\n\n const picker = (\n <ColorPicker.Root ref={rootRef} {...rootProps} size={size} width={fullWidth ? \"100%\" : \"8.75rem\"} maxW=\"100%\">\n <ColorPicker.HiddenInput />\n <ColorPicker.Label srOnly>{name}</ColorPicker.Label>\n <ColorPicker.Control>\n <ColorPicker.Input readOnly={readOnly} onFocus={() => setOpen(false)} />\n <ColorPicker.Trigger />\n </ColorPicker.Control>\n <ColorPicker.Positioner>\n <ColorPicker.Content ref={contentRef} onBlur={handleBlur}>\n <ColorPicker.Area />\n <ColorPicker.Sliders />\n <ColorPicker.SwatchGroup>\n <ColorPicker.SwatchTrigger value={value}>\n <ColorPicker.Swatch value={value} />\n </ColorPicker.SwatchTrigger>\n </ColorPicker.SwatchGroup>\n </ColorPicker.Content>\n </ColorPicker.Positioner>\n </ColorPicker.Root>\n );\n\n return (\n <Box>\n {fullWidth ? (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n {picker}\n </Box>\n ) : (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n {picker}\n </Flex>\n )}\n </Box>\n );\n};\n","import { Box, Flex, Input } from \"@chakra-ui/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ParamEditorLabel } from \"../param-editor-label\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\n\ninterface DateInputProps {\n id: string;\n defaultValue: string;\n name: string;\n min?: string;\n max?: string;\n onChange: (id: string, value: string) => void;\n description: string;\n readOnly?: boolean;\n hideLabel?: boolean;\n tooltipPlacement?: \"top\" | \"right\" | \"bottom\" | \"left\";\n fullWidth?: boolean;\n size?: \"xs\" | \"sm\";\n}\n\nexport const DateInput = (props: DateInputProps) => {\n const {\n id,\n defaultValue,\n name,\n min,\n max,\n onChange,\n description,\n readOnly,\n hideLabel = false,\n fullWidth = false,\n size = \"sm\",\n } = props;\n const [value, setValue] = useState(defaultValue);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const scheduleChange = (nextValue: string) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onChange(id, nextValue), 540);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const handleChange = (newValue: string) => {\n setValue(newValue);\n scheduleChange(newValue);\n };\n\n if (readOnly) {\n const valueElement = <ParamEditorReadOnlyValue>{value}</ParamEditorReadOnlyValue>;\n\n if (fullWidth) {\n return (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n {valueElement}\n </Box>\n );\n }\n\n return (\n <Box>\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n {valueElement}\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box>\n {fullWidth ? (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n <Input\n className=\"nodrag\"\n readOnly={readOnly}\n width=\"100%\"\n size={size}\n type=\"date\"\n placeholder={hideLabel ? name : undefined}\n value={value}\n min={min}\n max={max}\n onChange={(e) => handleChange(e.target.value)}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n }}\n />\n </Box>\n ) : (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n <Input\n className=\"nodrag\"\n readOnly={readOnly}\n width=\"8.75rem\"\n size={size}\n type=\"date\"\n placeholder={hideLabel ? name : undefined}\n value={value}\n min={min}\n max={max}\n onChange={(e) => handleChange(e.target.value)}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n }}\n />\n </Flex>\n )}\n </Box>\n );\n};\n","import type { FileUploadValue } from \"../param-editor.types\";\n\nexport type FileUploadSummaryState = \"empty\" | \"queued\" | \"uploading\" | \"complete\" | \"error\";\n\nconst valueId = (file: File, index: number) =>\n `${file.name}-${file.size.toString()}-${file.lastModified.toString()}-${index.toString()}`;\n\nexport const createFileUploadValues = (\n files: File[],\n existing: FileUploadValue[],\n multiple: boolean,\n): FileUploadValue[] => {\n const offset = multiple ? existing.length : 0;\n const selected = files.map((file, index) => ({\n id: valueId(file, offset + index),\n file,\n status: \"queued\" as const,\n }));\n\n return multiple ? [...existing, ...selected] : selected.slice(0, 1);\n};\n\nexport const getFileUploadSummary = (values: FileUploadValue[]) => {\n const states: FileUploadSummaryState[] = [\"uploading\", \"error\", \"queued\", \"complete\"];\n const state = states.find((candidate) => values.some((value) => value.status === candidate)) ?? \"empty\";\n const count = state === \"empty\" ? 0 : values.filter((value) => value.status === state).length;\n\n return { state, count };\n};\n","import { Button, Flex, Icon, Spinner, Stack, Text, Wrap } from \"@chakra-ui/react\";\nimport { CircleAlert, CircleCheck, Clock3, Paperclip } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { AttachmentChip } from \"@/components/overlays/attachment-chip\";\nimport type { FileUploadValue } from \"../param-editor.types\";\nimport { ParamEditorControlItem } from \"../param-editor-control-item\";\nimport { createFileUploadValues, getFileUploadSummary } from \"./file-upload-value\";\n\ninterface FileUploadInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: FileUploadValue[];\n accept?: string;\n multiple?: boolean;\n uploadLabel?: string;\n onChange: (id: string, value: FileUploadValue[]) => void;\n readOnly?: boolean;\n presentation?: \"stacked\" | \"horizontal\";\n}\n\nconst UploadStatus = (props: { values: FileUploadValue[] }) => {\n const { values } = props;\n const summary = getFileUploadSummary(values);\n if (summary.state === \"empty\") return null;\n\n const noun = summary.count === 1 ? \"file\" : \"files\";\n const labels = {\n queued: `${summary.count.toString()} ${noun} queued`,\n uploading: `Uploading ${summary.count.toString()} ${noun}`,\n complete: `${summary.count.toString()} ${noun} uploaded`,\n error: `${summary.count.toString()} ${noun} failed`,\n empty: \"\",\n };\n const icon =\n summary.state === \"uploading\" ? (\n <Spinner boxSize=\"12px\" borderWidth=\"1px\" />\n ) : (\n <Icon\n as={summary.state === \"error\" ? CircleAlert : summary.state === \"complete\" ? CircleCheck : Clock3}\n boxSize=\"12px\"\n />\n );\n\n return (\n <Flex alignItems=\"center\" gap=\"2xs\" color={summary.state === \"error\" ? \"fg.error\" : \"fg.muted\"}>\n {icon}\n <Text textStyle=\"label/XS/medium\">{labels[summary.state]}</Text>\n </Flex>\n );\n};\n\nconst UploadQueue = (props: { readOnly?: boolean; values: FileUploadValue[]; onRemove: (valueId: string) => void }) => {\n const { readOnly, values, onRemove } = props;\n if (values.length === 0) return null;\n\n return (\n <Stack gap=\"2xs\" minW=\"0\">\n <UploadStatus values={values} />\n <Wrap gap=\"2xs\">\n {values.map((value) => (\n <AttachmentChip\n key={value.id}\n file={value.file}\n disabled={readOnly}\n removeLabel={`Remove ${value.file.name}`}\n onRemove={() => onRemove(value.id)}\n />\n ))}\n </Wrap>\n </Stack>\n );\n};\n\nexport const FileUploadInput = (props: FileUploadInputProps) => {\n const {\n id,\n name,\n description,\n defaultValue,\n accept,\n multiple = true,\n uploadLabel = \"Attach files\",\n onChange,\n readOnly,\n presentation = \"stacked\",\n } = props;\n const [values, setValues] = useState(defaultValue);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setValues(defaultValue);\n }, [defaultValue]);\n\n const commit = (next: FileUploadValue[]) => {\n setValues(next);\n onChange(id, next);\n };\n const remove = (valueId: string) => commit(values.filter((value) => value.id !== valueId));\n const button = readOnly ? null : (\n <Button size=\"xs\" variant=\"ghost\" flexShrink={0} onClick={() => inputRef.current?.click()}>\n <Icon as={Paperclip} boxSize=\"14px\" />\n {uploadLabel}\n </Button>\n );\n const input = (\n <input\n ref={inputRef}\n hidden\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={(event) => {\n commit(createFileUploadValues(Array.from(event.currentTarget.files ?? []), values, multiple));\n event.currentTarget.value = \"\";\n }}\n />\n );\n\n if (presentation === \"horizontal\") {\n return (\n <Flex alignItems=\"center\" gap=\"sm\" minW=\"0\" width=\"full\">\n {input}\n {button}\n <UploadQueue readOnly={readOnly} values={values} onRemove={remove} />\n </Flex>\n );\n }\n\n return (\n <ParamEditorControlItem name={name} description={description} orientation=\"stacked\">\n <Stack alignItems=\"start\" gap=\"xs\" minW=\"0\">\n {input}\n {button}\n <UploadQueue readOnly={readOnly} values={values} onRemove={remove} />\n </Stack>\n </ParamEditorControlItem>\n );\n};\n","import { Box, Flex, Input, Textarea } from \"@chakra-ui/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ParamEditorLabel } from \"../param-editor-label\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\n\ninterface HorizontalTextInputProps {\n id: string;\n defaultValue: string;\n name: string;\n onChange: (id: string, value: string) => void;\n description: string;\n readOnly?: boolean;\n hideLabel?: boolean;\n tooltipPlacement?: \"top\" | \"right\" | \"bottom\" | \"left\";\n size?: \"xs\" | \"sm\";\n}\n\nexport const HorizontalTextInput = (props: HorizontalTextInputProps) => {\n const { id, defaultValue, name, onChange, description, readOnly, hideLabel = false, size = \"sm\" } = props;\n const [value, setValue] = useState(defaultValue);\n const [isExpanded, setIsExpanded] = useState(false);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const scheduleChange = (nextValue: string) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onChange(id, nextValue), 540);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const handleChange = (newValue: string) => {\n setValue(newValue);\n scheduleChange(newValue);\n };\n\n const handleClick = () => {\n if (!readOnly) {\n setIsExpanded(true);\n }\n };\n\n const handleBlur = () => {\n // Only collapse if the value is empty\n if (value.trim().length === 0) {\n setIsExpanded(false);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n // Allow users to collapse with Escape key\n if (e.key === \"Escape\") {\n setIsExpanded(false);\n e.preventDefault();\n }\n };\n\n if (readOnly) {\n return (\n <Box position=\"relative\" flex=\"1\" minW=\"12.5rem\">\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n <ParamEditorReadOnlyValue preserveWhitespace>{value}</ParamEditorReadOnlyValue>\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box position=\"relative\" flex=\"1\" minW=\"12.5rem\">\n <Box position=\"relative\" minHeight=\"2rem\">\n {!isExpanded ? (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" height=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n <Input\n className=\"nodrag\"\n readOnly={readOnly}\n flex=\"1\"\n maxW=\"12.5rem\"\n size={size}\n type=\"text\"\n placeholder={hideLabel ? name : undefined}\n value={value}\n onClick={handleClick}\n onChange={(e) => handleChange(e.target.value)}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n }}\n />\n </Flex>\n ) : (\n <Box\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n right=\"0\"\n zIndex=\"10\"\n bg=\"bg\"\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor=\"border\"\n borderRadius=\"lg\"\n p=\"2\"\n transition=\"border-color 0.2s ease-in-out\"\n boxShadow=\"none\"\n _hover={{ borderColor: \"border.accent-light\" }}\n _active={{ borderColor: \"border.accent-light\" }}\n _focusWithin={{ borderColor: \"border.accent-light\", boxShadow: \"none\" }}\n >\n {!hideLabel && (\n <Box mb=\"sm\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n <Textarea\n className=\"nodrag\"\n readOnly={readOnly}\n width=\"100%\"\n size={size}\n placeholder={hideLabel ? name : undefined}\n value={value}\n onChange={(e) => handleChange(e.target.value)}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n rows={3}\n resize=\"vertical\"\n autoFocus\n />\n </Box>\n )}\n </Box>\n </Box>\n );\n};\n","import { Box, Flex, Input, Stack } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { LazyMarkdownEditor } from \"@/components/rich-text\";\nimport { ParamEditorFieldLabel } from \"../param-editor-field-label\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\n\ninterface MarkdownInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: string;\n placeholder?: string;\n onChange: (id: string, value: string) => void;\n readOnly?: boolean;\n presentation?: \"stacked\" | \"horizontal\";\n size?: \"xs\" | \"sm\";\n}\n\nexport const MarkdownInput = (props: MarkdownInputProps) => {\n const {\n id,\n name,\n description,\n defaultValue,\n placeholder,\n onChange,\n readOnly,\n presentation = \"stacked\",\n size = \"sm\",\n } = props;\n const [value, setValue] = useState(defaultValue);\n const [isExpanded, setIsExpanded] = useState(false);\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const commit = (next: string) => {\n setValue(next);\n onChange(id, next);\n };\n\n const editor = (editorValue: string) => (\n <Box borderWidth=\"1px\" borderColor=\"border\" borderRadius=\"xs\" minH=\"7rem\" minW=\"0\" overflow=\"visible\" width=\"full\">\n <LazyMarkdownEditor\n defaultState={editorValue}\n isEditable={!readOnly}\n placeholder={placeholder}\n scrollable={false}\n onChange={commit}\n />\n </Box>\n );\n const label = <ParamEditorFieldLabel name={name} description={description} />;\n\n if (presentation === \"horizontal\") {\n if (readOnly) {\n return (\n <Box position=\"relative\" flex=\"1\" minW=\"12.5rem\">\n <Flex alignItems=\"center\" minHeight=\"2rem\">\n <ParamEditorReadOnlyValue preserveWhitespace>{value}</ParamEditorReadOnlyValue>\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box position=\"relative\" flex=\"1\" minW=\"12.5rem\">\n <Box position=\"relative\" minHeight=\"2rem\">\n {!isExpanded ? (\n <Input\n className=\"nodrag\"\n flex=\"1\"\n maxW=\"12.5rem\"\n size={size}\n type=\"text\"\n placeholder={name}\n value={value}\n onClick={() => {\n setIsExpanded(true);\n }}\n onChange={(event) => commit(event.target.value)}\n />\n ) : (\n <Box\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n right=\"0\"\n zIndex=\"10\"\n bg=\"bg\"\n borderWidth=\"1px\"\n borderColor=\"border\"\n borderRadius=\"lg\"\n p=\"2\"\n transition=\"border-color 0.2s ease-in-out\"\n _hover={{ borderColor: \"border.accent-light\" }}\n _focusWithin={{ borderColor: \"border.accent-light\" }}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") {\n setIsExpanded(false);\n event.preventDefault();\n }\n }}\n >\n {editor(value)}\n </Box>\n )}\n </Box>\n </Box>\n );\n }\n\n return (\n <Stack gap=\"xs\" minW=\"0\" width=\"full\">\n {label}\n {editor(value)}\n </Stack>\n );\n};\n","import { NumberInput as ChakraNumberInput } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface NumberInputProps extends ChakraNumberInput.RootProps {}\n\nexport const NumberInputRoot = React.forwardRef<HTMLDivElement, NumberInputProps>(function NumberInput(props, ref) {\n const { children, ...rest } = props;\n return (\n <ChakraNumberInput.Root ref={ref} variant=\"outline\" {...rest}>\n {children}\n <ChakraNumberInput.Control>\n <ChakraNumberInput.IncrementTrigger />\n <ChakraNumberInput.DecrementTrigger />\n </ChakraNumberInput.Control>\n </ChakraNumberInput.Root>\n );\n});\n\nexport const NumberInputField = ChakraNumberInput.Input;\n","import { Slider as ChakraSlider } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface SliderProps extends ChakraSlider.RootProps {}\n\nexport const Slider = React.forwardRef<HTMLDivElement, SliderProps>(function Slider(props, ref) {\n const { children, ...rest } = props;\n\n return (\n <ChakraSlider.Root ref={ref} variant=\"solid\" {...rest}>\n <ChakraSlider.Control>\n <ChakraSlider.Track height=\"2px\" borderRadius=\"0\" bg=\"bg.muted\">\n <ChakraSlider.Range bg=\"fg\" />\n </ChakraSlider.Track>\n <ChakraSlider.Thumbs\n boxSize=\"0.5rem\"\n bg=\"fg\"\n borderWidth=\"1px\"\n borderColor=\"bg\"\n borderRadius=\"none\"\n boxShadow=\"none\"\n transition=\"width 0.12s ease, height 0.12s ease, border-color 0.2s ease-in-out\"\n _hover={{ boxSize: \"0.75rem\", borderColor: \"border.accent-light\" }}\n _active={{ boxSize: \"0.875rem\", borderColor: \"border.accent-light\" }}\n _focusVisible={{ borderColor: \"border.accent-light\", outline: \"none\", boxShadow: \"none\" }}\n />\n </ChakraSlider.Control>\n {children}\n </ChakraSlider.Root>\n );\n});\n","import { Box, Flex, type NumberInputValueChangeDetails, type SliderValueChangeDetails } from \"@chakra-ui/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { NumberInputField, NumberInputRoot } from \"@/components/primitives/number-input\";\nimport { Slider } from \"@/components/primitives/slider\";\nimport { ParamEditorLabel } from \"../param-editor-label\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\n\ninterface NumberInputProps {\n id: string;\n defaultValue: number;\n name: string;\n step?: number;\n min?: number;\n max?: number;\n onChange: (id: string, value: number) => void;\n description: string;\n readOnly?: boolean;\n hideLabel?: boolean;\n hideSlider?: boolean;\n tooltipPlacement?: \"top\" | \"right\" | \"bottom\" | \"left\";\n fullWidth?: boolean;\n size?: \"xs\" | \"sm\";\n}\n\nexport const NumberInput = (props: NumberInputProps) => {\n const {\n id,\n defaultValue,\n name,\n step = 1,\n min,\n max,\n onChange,\n description,\n readOnly,\n hideLabel = false,\n hideSlider = false,\n fullWidth = false,\n size = \"sm\",\n } = props;\n const [value, setValue] = useState(defaultValue);\n const isRange = min !== undefined && max !== undefined;\n const showSlider = isRange && !hideSlider;\n const useFullWidthLayout = fullWidth && !showSlider;\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const scheduleChange = (nextValue: number) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onChange(id, nextValue), 540);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n if (readOnly) {\n const valueElement = <ParamEditorReadOnlyValue>{value}</ParamEditorReadOnlyValue>;\n\n if (fullWidth) {\n return (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n {valueElement}\n </Box>\n );\n }\n\n return (\n <Box>\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n {valueElement}\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box>\n {useFullWidthLayout ? (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n <NumberInputRoot\n disabled={readOnly}\n width=\"100%\"\n size={size}\n value={`${value}`}\n step={step}\n min={min}\n max={max}\n onValueChange={(details: NumberInputValueChangeDetails) => {\n const next = Number.isNaN(details.valueAsNumber) ? (min ?? 0) : details.valueAsNumber;\n setValue(next);\n scheduleChange(next);\n }}\n >\n <NumberInputField\n className=\"nodrag\"\n readOnly={readOnly}\n placeholder={hideLabel ? name : undefined}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n }}\n />\n </NumberInputRoot>\n </Box>\n ) : (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n <NumberInputRoot\n disabled={readOnly}\n width=\"5rem\"\n size={size}\n value={`${value}`}\n step={step}\n min={min}\n max={max}\n onValueChange={(details: NumberInputValueChangeDetails) => {\n const next = Number.isNaN(details.valueAsNumber) ? (min ?? 0) : details.valueAsNumber;\n setValue(next);\n scheduleChange(next);\n }}\n >\n <NumberInputField\n className=\"nodrag\"\n readOnly={readOnly}\n placeholder={hideLabel ? name : undefined}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n }}\n />\n </NumberInputRoot>\n </Flex>\n )}\n {showSlider && (\n <Slider\n disabled={readOnly}\n value={[value]}\n step={step}\n min={min}\n max={max}\n onValueChange={(details: SliderValueChangeDetails) => {\n setValue(details.value[0]);\n }}\n onValueChangeEnd={(details: SliderValueChangeDetails) => {\n onChange(id, details.value[0]);\n }}\n />\n )}\n </Box>\n );\n};\n","/** Clamp `value` into the inclusive range, tolerating an inverted min/max. */\nexport const clampToRange = (value: number, min: number, max: number) => {\n const lower = Math.min(min, max);\n const upper = Math.max(min, max);\n if (value < lower) return lower;\n if (value > upper) return upper;\n return value;\n};\n\n/** Snap `value` to the nearest multiple of `step` measured from `origin`. */\nexport const snapToStep = (value: number, step: number, origin = 0) => {\n if (!(step > 0)) return value;\n const steps = Math.round((value - origin) / step);\n return origin + steps * step;\n};\n\n/** Format a number with an optional unit suffix, trimming float noise. */\nexport const formatUnitValue = (value: number, unit?: string) => {\n const rounded = Number.isInteger(value) ? `${value}` : `${Number(value.toFixed(3))}`;\n return unit ? `${rounded}${unit}` : rounded;\n};\n","import type { RangeValue } from \"../param-editor.types\";\nimport { clampToRange, snapToStep } from \"./numeric-value\";\n\n/** Order both handles and clamp (and optionally snap) them into `[min, max]`. */\nexport const normalizeRange = (value: RangeValue, min: number, max: number, step?: number): RangeValue => {\n const first = clampToRange(value[0], min, max);\n const second = clampToRange(value[1], min, max);\n let start = Math.min(first, second);\n let end = Math.max(first, second);\n if (step && step > 0) {\n start = clampToRange(snapToStep(start, step, min), min, max);\n end = clampToRange(snapToStep(end, step, min), min, max);\n }\n return [start, end];\n};\n\n/** Replace a single handle, keeping the pair ordered. */\nexport const updateRangeHandle = (\n value: RangeValue,\n index: 0 | 1,\n next: number,\n min: number,\n max: number,\n step?: number,\n): RangeValue => {\n const draft: RangeValue = index === 0 ? [next, value[1]] : [value[0], next];\n return normalizeRange(draft, min, max, step);\n};\n","import { Box, Flex } from \"@chakra-ui/react\";\n\ninterface SliderMarksProps {\n count?: number;\n}\n\n// Evenly-spaced tick marks rendered under a slider track. Purely decorative.\nexport const SliderMarks = (props: SliderMarksProps) => {\n const { count } = props;\n if (!count || count < 2) return null;\n const positions = Array.from({ length: count }, (_, index) => index / (count - 1));\n\n return (\n <Flex justifyContent=\"space-between\" mt=\"2xs\" aria-hidden=\"true\">\n {positions.map((position) => (\n <Box key={position} width=\"1px\" height=\"0.375rem\" bg=\"border.subtle\" />\n ))}\n </Flex>\n );\n};\n","import { Box, Button, Flex, Icon, Popover, type SliderValueChangeDetails, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { Slider } from \"@/components/primitives/slider\";\nimport type { RangeValue } from \"../param-editor.types\";\nimport { ParamEditorControlItem } from \"../param-editor-control-item\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\nimport { formatUnitValue } from \"./numeric-value\";\nimport { normalizeRange } from \"./range-value\";\nimport { SliderMarks } from \"./slider-marks\";\n\ninterface RangeInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: RangeValue;\n min: number;\n max: number;\n step?: number;\n unit?: string;\n markerCount?: number;\n onChange: (id: string, value: RangeValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n presentation?: \"stacked\" | \"horizontal\";\n}\n\nexport const RangeInput = (props: RangeInputProps) => {\n const {\n id,\n name,\n description,\n defaultValue,\n min,\n max,\n step = 1,\n unit,\n markerCount,\n onChange,\n readOnly,\n fullWidth,\n presentation = \"stacked\",\n } = props;\n\n const [value, setValue] = useState<RangeValue>(() => normalizeRange(defaultValue, min, max, step));\n\n useEffect(() => {\n setValue(normalizeRange(defaultValue, min, max, step));\n }, [defaultValue, min, max, step]);\n\n const label = `${formatUnitValue(value[0], unit)} – ${formatUnitValue(value[1], unit)}`;\n const horizontal = presentation === \"horizontal\";\n\n if (readOnly) {\n if (horizontal) {\n return <ParamEditorReadOnlyValue>{label}</ParamEditorReadOnlyValue>;\n }\n\n return (\n <ParamEditorControlItem name={name} description={description} fullWidth={fullWidth}>\n <ParamEditorReadOnlyValue>{label}</ParamEditorReadOnlyValue>\n </ParamEditorControlItem>\n );\n }\n\n const trailing = (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\" whiteSpace=\"nowrap\">\n {label}\n </Text>\n );\n const slider = (\n <Box>\n <Slider\n size=\"sm\"\n value={value}\n min={min}\n max={max}\n step={step}\n onValueChange={(details: SliderValueChangeDetails) =>\n setValue(normalizeRange(details.value as RangeValue, min, max, step))\n }\n onValueChangeEnd={(details: SliderValueChangeDetails) => {\n const next = normalizeRange(details.value as RangeValue, min, max, step);\n setValue(next);\n onChange(id, next);\n }}\n />\n <SliderMarks count={markerCount} />\n </Box>\n );\n\n if (horizontal) {\n return (\n <Popover.Root positioning={{ placement: \"bottom-start\", offset: { mainAxis: 4 } }}>\n <Popover.Trigger asChild>\n <Button size=\"xs\" variant=\"ghost\" aria-label={`${name}: ${label}`}>\n {label}\n <Icon as={ChevronDown} boxSize=\"14px\" />\n </Button>\n </Popover.Trigger>\n <Popover.Positioner>\n <Popover.Content width=\"60\" padding=\"sm\" background=\"bg\">\n <Stack gap=\"xs\">\n <Flex alignItems=\"center\" justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/S/medium\">{name}</Text>\n {trailing}\n </Flex>\n {slider}\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Popover.Root>\n );\n }\n\n return (\n <ParamEditorControlItem name={name} description={description} orientation=\"stacked\" labelTrailing={trailing}>\n {slider}\n </ParamEditorControlItem>\n );\n};\n","import { Icon, Text, Wrap } from \"@chakra-ui/react\";\nimport { Chip } from \"../../primitives/chip\";\nimport { getIconComponent } from \"../../primitives/icon-color-picker\";\nimport { ResourceBadge } from \"../../primitives/resource-badge\";\nimport type { ResourceOption, ResourceRefValue } from \"../param-editor.types\";\n\nconst optionIcon = (option: ResourceOption) => (\n <Icon as={getIconComponent(option.icon)} boxSize=\"14px\" color={option.color ? `${option.color}.500` : \"fg.muted\"} />\n);\n\nconst openExternal = (href: string) => window.open(href, \"_blank\", \"noreferrer\");\n\nconst copyToClipboard = (text: string) => void navigator.clipboard?.writeText(text).catch(() => undefined);\n\ninterface ResourceChipProps {\n option: ResourceOption;\n onOpenResource?: (ref: ResourceRefValue) => void;\n onRemove?: () => void;\n}\n\n// A chip opens its external href in a new tab, opens its internal ref via the host, or\n// copies its text to the clipboard — whichever the option declares.\nexport const ResourceChip = (props: ResourceChipProps) => {\n const { option, onOpenResource, onRemove } = props;\n const isReference = Boolean(option.href || option.ref || option.copyText);\n\n if (!isReference) {\n return <Chip>{option.name}</Chip>;\n }\n\n const handleSelect =\n option.href && option.href.length > 0\n ? () => openExternal(option.href!)\n : option.ref && onOpenResource\n ? () => onOpenResource(option.ref!)\n : option.copyText\n ? () => copyToClipboard(option.copyText!)\n : undefined;\n\n return (\n <ResourceBadge\n fileName={option.name}\n icon={optionIcon(option)}\n size=\"md\"\n onSelect={handleSelect ? () => handleSelect() : undefined}\n onRemove={onRemove ? () => onRemove() : undefined}\n />\n );\n};\n\ninterface ResourceChipListProps {\n options: ResourceOption[];\n onOpenResource?: (ref: ResourceRefValue) => void;\n onRemove?: (optionId: string) => void;\n emptyText?: string;\n}\n\nexport const ResourceChipList = (props: ResourceChipListProps) => {\n const { options, onOpenResource, onRemove, emptyText } = props;\n\n if (options.length === 0) {\n return (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n {emptyText ?? \"None\"}\n </Text>\n );\n }\n\n return (\n <Wrap gap=\"2xs\">\n {options.map((option) => (\n <ResourceChip\n key={option.id}\n option={option}\n onOpenResource={onOpenResource}\n onRemove={onRemove ? () => onRemove(option.id) : undefined}\n />\n ))}\n </Wrap>\n );\n};\n","import { Box, Flex, Icon, Stack } from \"@chakra-ui/react\";\nimport { Plus } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { getIconComponent } from \"../../primitives/icon-color-picker\";\nimport type { ResourceOption, ResourceRefValue } from \"../param-editor.types\";\nimport { ParamEditorLabel } from \"../param-editor-label\";\nimport { ResourceChipList } from \"./resource-input-chips\";\nimport { SelectionMenu } from \"./selection-menu\";\n\ninterface ResourceInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: string | string[];\n options: ResourceOption[];\n onChange: (id: string, value: string | string[]) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n editable?: boolean;\n multiSelect?: boolean;\n placeholder?: string;\n emptyText?: string;\n fullWidth?: boolean;\n presentation?: \"stacked\" | \"horizontal\";\n size?: \"xs\" | \"sm\";\n}\n\nconst toIds = (value: string | string[]) => {\n if (Array.isArray(value)) return value;\n return value ? [value] : [];\n};\n\nconst resolveOptions = (ids: string[], options: ResourceOption[]) =>\n ids\n .map((id) => options.find((option) => option.id === id))\n .filter((option): option is ResourceOption => Boolean(option));\n\ninterface FieldShellProps {\n fullWidth: boolean;\n label: ReactNode;\n control: ReactNode;\n presentation: \"stacked\" | \"horizontal\";\n}\n\nconst FieldShell = (props: FieldShellProps) => {\n const { fullWidth, label, control, presentation } = props;\n\n if (presentation === \"horizontal\") {\n return (\n <Stack gap=\"2xs\" alignItems=\"start\" minW=\"0\">\n {label}\n {control}\n </Stack>\n );\n }\n\n if (fullWidth) {\n return (\n <Box>\n <Box mb=\"xs\">{label}</Box>\n {control}\n </Box>\n );\n }\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {label}\n {control}\n </Flex>\n );\n};\n\ninterface ResourceSelectMenuProps {\n triggerLabel: ReactNode;\n options: ResourceOption[];\n selectedIds: string[];\n multiSelect: boolean;\n triggerVariant?: \"button\" | \"icon\";\n triggerAriaLabel?: string;\n size?: \"xs\" | \"sm\";\n onToggle: (optionId: string) => void;\n}\n\n// Resource params share the editor's one dropdown, so a ticket property and a\n// command param cannot drift into two looks.\nconst ResourceSelectMenu = (props: ResourceSelectMenuProps) => {\n const { triggerLabel, options, selectedIds, multiSelect, triggerVariant, triggerAriaLabel, size, onToggle } = props;\n\n return (\n <SelectionMenu\n triggerLabel={triggerLabel}\n options={options}\n selectedIds={selectedIds}\n multiSelect={multiSelect}\n triggerVariant={triggerVariant}\n triggerAriaLabel={triggerAriaLabel}\n size={size}\n onToggle={onToggle}\n />\n );\n};\n\nexport const ResourceInput = (props: ResourceInputProps) => {\n const {\n id,\n name,\n description,\n defaultValue,\n options,\n onChange,\n onOpenResource,\n readOnly,\n editable = false,\n multiSelect = false,\n placeholder,\n emptyText,\n fullWidth = false,\n presentation = \"stacked\",\n size = \"sm\",\n } = props;\n\n const [value, setValue] = useState(defaultValue);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const emitChange = (next: string | string[]) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n onChange(id, next);\n };\n\n // Debounce multi-select toggles so a burst of menu clicks makes one update call.\n const scheduleChange = (next: string | string[]) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onChange(id, next), 540);\n };\n\n const selectedIds = toIds(value);\n const selectedOptions = resolveOptions(selectedIds, options);\n const interactive = editable && !readOnly;\n\n const label = <ParamEditorLabel name={name} description={description} compact={presentation === \"horizontal\"} />;\n\n if (!interactive) {\n return (\n <FieldShell\n fullWidth={fullWidth}\n label={label}\n presentation={presentation}\n control={<ResourceChipList options={selectedOptions} onOpenResource={onOpenResource} emptyText={emptyText} />}\n />\n );\n }\n\n const toggleOption = (optionId: string) => {\n if (multiSelect) {\n const next = selectedIds.includes(optionId)\n ? selectedIds.filter((entry) => entry !== optionId)\n : [...selectedIds, optionId];\n setValue(next);\n scheduleChange(next);\n return;\n }\n // Re-picking the selected option clears it.\n const next = selectedIds.includes(optionId) ? \"\" : optionId;\n setValue(next);\n emitChange(next);\n };\n\n const removeOption = (optionId: string) => {\n const next = selectedIds.filter((entry) => entry !== optionId);\n setValue(next);\n scheduleChange(next);\n };\n\n if (multiSelect) {\n const control = (\n <Flex gap=\"2xs\" alignItems=\"center\" flexWrap=\"wrap\" minW=\"0\">\n {selectedOptions.length > 0 ? (\n <ResourceChipList\n options={selectedOptions}\n onOpenResource={onOpenResource}\n onRemove={removeOption}\n emptyText={emptyText}\n />\n ) : null}\n <ResourceSelectMenu\n triggerLabel={<Icon as={Plus} boxSize=\"12px\" />}\n options={options}\n selectedIds={selectedIds}\n multiSelect\n triggerVariant=\"icon\"\n triggerAriaLabel={placeholder ?? `Add ${name}`}\n size={size}\n onToggle={toggleOption}\n />\n </Flex>\n );\n\n return <FieldShell fullWidth={fullWidth} label={label} control={control} presentation={presentation} />;\n }\n\n const selected = selectedOptions[0];\n const triggerLabel = selected ? (\n <Flex align=\"center\" gap=\"2xs\" minW=\"0\">\n <Icon\n as={getIconComponent(selected.icon)}\n boxSize=\"14px\"\n color={selected.color ? `${selected.color}.500` : \"fg.muted\"}\n />\n {selected.name}\n </Flex>\n ) : (\n (placeholder ?? \"Select\")\n );\n\n return (\n <FieldShell\n fullWidth={fullWidth}\n label={label}\n presentation={presentation}\n control={\n <ResourceSelectMenu\n triggerLabel={triggerLabel}\n options={options}\n selectedIds={selectedIds}\n multiSelect={false}\n size={size}\n onToggle={toggleOption}\n />\n }\n />\n );\n};\n","import { Box, Button, Group } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport type { SegmentedOption } from \"../param-editor.types\";\nimport { ParamEditorControlItem } from \"../param-editor-control-item\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\nimport { SelectionMenu } from \"./selection-menu\";\n\ninterface SegmentedInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: string;\n options: SegmentedOption[];\n variant?: \"default\" | \"dots\";\n onChange: (id: string, value: string) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n presentation?: \"stacked\" | \"horizontal\";\n}\n\nexport const SegmentedInput = (props: SegmentedInputProps) => {\n const {\n id,\n name,\n description,\n defaultValue,\n options,\n variant = \"default\",\n onChange,\n readOnly,\n fullWidth,\n presentation = \"stacked\",\n } = props;\n const [value, setValue] = useState(defaultValue);\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const select = (next: string) => {\n setValue(next);\n onChange(id, next);\n };\n\n const selectedName = options.find((option) => option.id === value)?.name ?? value;\n const horizontal = presentation === \"horizontal\";\n\n if (readOnly) {\n return (\n <ParamEditorControlItem name={name} description={description} hideLabel={horizontal} fullWidth={fullWidth}>\n <ParamEditorReadOnlyValue>{selectedName}</ParamEditorReadOnlyValue>\n </ParamEditorControlItem>\n );\n }\n\n if (horizontal) {\n return (\n <SelectionMenu\n triggerLabel={selectedName}\n options={options}\n selectedIds={[value]}\n multiSelect={false}\n onToggle={select}\n />\n );\n }\n\n const group = (\n <Group\n attached\n width=\"full\"\n borderWidth=\"1px\"\n borderColor=\"border\"\n borderRadius=\"xs\"\n overflow=\"hidden\"\n transition=\"border-color 0.2s ease-in-out\"\n _hover={{ borderColor: \"border.accent-light\" }}\n _active={{ borderColor: \"border.accent-light\" }}\n _focusWithin={{ borderColor: \"border.accent-light\", boxShadow: \"none\" }}\n >\n {options.map((option) => {\n const selected = option.id === value;\n return (\n <Button\n key={option.id}\n flex=\"1\"\n size=\"xs\"\n variant={selected ? \"subtle\" : \"ghost\"}\n borderRadius=\"0\"\n aria-pressed={selected}\n onClick={() => select(option.id)}\n >\n {variant === \"dots\" ? (\n <Box boxSize=\"0.5rem\" borderRadius=\"full\" bg={option.indicatorColor ?? \"fg.muted\"} mr=\"1\" />\n ) : null}\n {option.name}\n </Button>\n );\n })}\n </Group>\n );\n\n return (\n <ParamEditorControlItem name={name} description={description} orientation=\"stacked\">\n {group}\n </ParamEditorControlItem>\n );\n};\n","import { Box, Flex } from \"@chakra-ui/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ParamEditorLabel } from \"../param-editor-label\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\nimport { SelectionMenu, type SelectionMenuOption, selectionOptionIcon } from \"./selection-menu\";\n\ninterface SelectionInputProps {\n id: string;\n defaultValue: string | string[];\n name: string;\n options: SelectionMenuOption[];\n onChange: (id: string, value: string | string[]) => void;\n description: string;\n readOnly?: boolean;\n hideLabel?: boolean;\n multiSelect?: boolean;\n tooltipPlacement?: \"top\" | \"right\" | \"bottom\" | \"left\";\n placeholder?: string;\n fullWidth?: boolean;\n /** Re-picking the selected option clears it. */\n clearable?: boolean;\n /** Inert, but still rendered as a control. */\n disabled?: boolean;\n size?: \"xs\" | \"sm\";\n}\n\nexport const SelectionInput = (props: SelectionInputProps) => {\n const {\n id,\n defaultValue,\n name,\n options,\n onChange,\n description,\n readOnly,\n hideLabel = false,\n multiSelect = false,\n placeholder,\n fullWidth = false,\n clearable = false,\n disabled = false,\n size = \"sm\",\n } = props;\n const [value, setValue] = useState(defaultValue);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const scheduleChange = (nextValue: string | string[]) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onChange(id, nextValue), 540);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const selectedIds = multiSelect\n ? Array.isArray(value)\n ? value\n : []\n : typeof value === \"string\" && value\n ? [value]\n : [];\n\n const getDisplayText = () => {\n const names = selectedIds\n .map((selectedId) => options.find((option) => option.id === selectedId)?.name)\n .filter((optionName): optionName is string => Boolean(optionName));\n\n if (names.length === 0) return placeholder || \"Select\";\n if (names.length <= 3) return names.join(\", \");\n return `${names.slice(0, 3).join(\", \")} +${(names.length - 3).toString()}`;\n };\n\n const commit = (nextValue: string | string[]) => {\n setValue(nextValue);\n scheduleChange(nextValue);\n };\n\n const handleToggle = (optionId: string) => {\n if (!multiSelect) {\n // Re-picking the selected option clears it, so a single-select needs no\n // extra \"none\" row cluttering the list.\n commit(clearable && selectedIds.includes(optionId) ? \"\" : optionId);\n return;\n }\n commit(\n selectedIds.includes(optionId) ? selectedIds.filter((item) => item !== optionId) : [...selectedIds, optionId],\n );\n };\n\n // Only a lone selection can colour the trigger; a multi-pick has no single icon.\n const triggerOption = selectedIds.length === 1 ? options.find((option) => option.id === selectedIds[0]) : undefined;\n const label = !hideLabel ? <ParamEditorLabel name={name} description={description} /> : null;\n\n if (readOnly) {\n const valueElement = <ParamEditorReadOnlyValue>{getDisplayText()}</ParamEditorReadOnlyValue>;\n\n if (fullWidth)\n return (\n <Box>\n {label ? <Box mb=\"xs\">{label}</Box> : null}\n {valueElement}\n </Box>\n );\n\n return (\n <Box>\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {label}\n {valueElement}\n </Flex>\n </Box>\n );\n }\n\n const menu = (\n <SelectionMenu\n triggerLabel={\n <>\n {selectionOptionIcon(triggerOption, \"14px\")}\n {getDisplayText()}\n </>\n }\n options={options}\n selectedIds={selectedIds}\n multiSelect={multiSelect}\n disabled={disabled}\n fullWidth={fullWidth}\n size={size}\n onToggle={handleToggle}\n />\n );\n\n if (fullWidth)\n return (\n <Box>\n {label ? <Box mb=\"xs\">{label}</Box> : null}\n {menu}\n </Box>\n );\n\n return (\n <Box>\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {label}\n {menu}\n </Flex>\n </Box>\n );\n};\n","import { Box, Flex, Input, Textarea } from \"@chakra-ui/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ParamEditorLabel } from \"../param-editor-label\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\n\ninterface TextInputProps {\n id: string;\n defaultValue: string;\n name: string;\n onChange: (id: string, value: string) => void;\n description: string;\n readOnly?: boolean;\n singleLine?: boolean;\n hideLabel?: boolean;\n fullWidth?: boolean;\n size?: \"xs\" | \"sm\";\n}\n\nexport const TextInput = (props: TextInputProps) => {\n const {\n id,\n defaultValue,\n name,\n onChange,\n description,\n readOnly,\n singleLine = true,\n hideLabel = false,\n fullWidth = false,\n size = \"sm\",\n } = props;\n const [value, setValue] = useState(defaultValue);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const scheduleChange = (nextValue: string) => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onChange(id, nextValue), 540);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const handleChange = (newValue: string) => {\n setValue(newValue);\n scheduleChange(newValue);\n };\n\n if (readOnly) {\n const valueElement = <ParamEditorReadOnlyValue preserveWhitespace={!singleLine}>{value}</ParamEditorReadOnlyValue>;\n\n if (singleLine && !fullWidth) {\n return (\n <Box>\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n {valueElement}\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n {valueElement}\n </Box>\n );\n }\n\n return (\n <Box>\n {singleLine && !fullWidth ? (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n {!hideLabel && <ParamEditorLabel name={name} description={description} />}\n <Input\n className=\"nodrag\"\n readOnly={readOnly}\n flex=\"1\"\n maxW=\"12.5rem\"\n size={size}\n type=\"text\"\n placeholder={hideLabel ? name : undefined}\n value={value}\n onChange={(e) => handleChange(e.target.value)}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n }}\n />\n </Flex>\n ) : (\n <Box>\n {!hideLabel && (\n <Box mb=\"xs\">\n <ParamEditorLabel name={name} description={description} />\n </Box>\n )}\n {singleLine ? (\n <Input\n className=\"nodrag\"\n readOnly={readOnly}\n width=\"100%\"\n size={size}\n type=\"text\"\n placeholder={hideLabel ? name : undefined}\n value={value}\n onChange={(e) => handleChange(e.target.value)}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n e.currentTarget.blur();\n }\n }}\n />\n ) : (\n <Textarea\n className=\"nodrag\"\n readOnly={readOnly}\n width=\"100%\"\n size={size}\n placeholder={hideLabel ? name : undefined}\n value={value}\n onChange={(e) => handleChange(e.target.value)}\n rows={3}\n resize=\"vertical\"\n />\n )}\n </Box>\n )}\n </Box>\n );\n};\n","import { Flex, type FlexProps } from \"@chakra-ui/react\";\n\ninterface ParamEditorInlineGroupProps extends FlexProps {}\n\n// A horizontal row of controls that share a line (e.g. paired x/y inputs).\nexport const ParamEditorInlineGroup = (props: ParamEditorInlineGroupProps) => {\n const { children, ...rest } = props;\n\n return (\n <Flex alignItems=\"center\" gap=\"xs\" minW=\"0\" {...rest}>\n {children}\n </Flex>\n );\n};\n","import type { VectorValue } from \"../param-editor.types\";\nimport { clampToRange } from \"./numeric-value\";\n\nexport interface VectorBounds {\n min?: number;\n max?: number;\n}\n\nconst clampAxis = (value: number, bounds: VectorBounds) => {\n if (bounds.min === undefined && bounds.max === undefined) return value;\n const min = bounds.min ?? Number.NEGATIVE_INFINITY;\n const max = bounds.max ?? Number.POSITIVE_INFINITY;\n return clampToRange(value, min, max);\n};\n\n/** Update a single axis without dropping the other, clamping into optional bounds. */\nexport const updateVectorAxis = (\n value: VectorValue,\n axis: \"x\" | \"y\",\n next: number,\n bounds: VectorBounds = {},\n): VectorValue => {\n const clamped = clampAxis(next, bounds);\n return axis === \"x\" ? { x: clamped, y: value.y } : { x: value.x, y: clamped };\n};\n","import { Flex, Text } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport type { VectorValue } from \"../param-editor.types\";\nimport { ParamEditorControlItem } from \"../param-editor-control-item\";\nimport { ParamEditorInlineGroup } from \"../param-editor-inline-group\";\nimport { ParamEditorReadOnlyValue } from \"../param-editor-read-only-value\";\nimport { NumberInput } from \"./number-input\";\nimport { updateVectorAxis } from \"./vector-value\";\n\ninterface VectorInputProps {\n id: string;\n name: string;\n description?: string;\n defaultValue: VectorValue;\n xLabel?: string;\n yLabel?: string;\n min?: number;\n max?: number;\n step?: number;\n onChange: (id: string, value: VectorValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n}\n\ninterface VectorAxisFieldProps {\n label: string;\n fieldId: string;\n value: number;\n min?: number;\n max?: number;\n step?: number;\n onCommit: (value: number) => void;\n}\n\n// A single axis: the shared NumberInput (label/slider hidden) prefixed with its axis letter.\nconst VectorAxisField = (props: VectorAxisFieldProps) => {\n const { label, fieldId, value, min, max, step, onCommit } = props;\n\n return (\n <Flex alignItems=\"center\" gap=\"1\" flexShrink={0}>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\" width=\"1rem\" flexShrink={0}>\n {label}\n </Text>\n <NumberInput\n id={fieldId}\n name={label}\n description=\"\"\n defaultValue={value}\n min={min}\n max={max}\n step={step}\n hideLabel\n hideSlider\n onChange={(_, next) => onCommit(next)}\n />\n </Flex>\n );\n};\n\nexport const VectorInput = (props: VectorInputProps) => {\n const {\n id,\n name,\n description,\n defaultValue,\n xLabel = \"X\",\n yLabel = \"Y\",\n min,\n max,\n step = 1,\n onChange,\n readOnly,\n } = props;\n const [value, setValue] = useState<VectorValue>(defaultValue);\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n const commitAxis = (axis: \"x\" | \"y\", next: number) => {\n const updated = updateVectorAxis(value, axis, next, { min, max });\n setValue(updated);\n onChange(id, updated);\n };\n\n if (readOnly) {\n return (\n <ParamEditorControlItem name={name} description={description}>\n <ParamEditorReadOnlyValue>{`${value.x}, ${value.y}`}</ParamEditorReadOnlyValue>\n </ParamEditorControlItem>\n );\n }\n\n return (\n <ParamEditorControlItem name={name} description={description} orientation=\"stacked\">\n <ParamEditorInlineGroup>\n <VectorAxisField\n label={xLabel}\n fieldId={`${id}.x`}\n value={value.x}\n min={min}\n max={max}\n step={step}\n onCommit={(next) => commitAxis(\"x\", next)}\n />\n <VectorAxisField\n label={yLabel}\n fieldId={`${id}.y`}\n value={value.y}\n min={min}\n max={max}\n step={step}\n onCommit={(next) => commitAxis(\"y\", next)}\n />\n </ParamEditorInlineGroup>\n </ParamEditorControlItem>\n );\n};\n","import type { ParamValueMap } from \"./param-editor.types\";\n\nexport const resolveParamValue = <T>(defaultValues: ParamValueMap, paramId: string, fallback: T) =>\n defaultValues[paramId] === undefined ? fallback : (defaultValues[paramId] as T);\n","import { ActionInput } from \"./inputs/action-input\";\nimport { AnchorGridInput } from \"./inputs/anchor-grid-input\";\nimport { FileUploadInput } from \"./inputs/file-upload-input\";\nimport { RangeInput } from \"./inputs/range-input\";\nimport { SegmentedInput } from \"./inputs/segmented-input\";\nimport { VectorInput } from \"./inputs/vector-input\";\nimport type { Param, ParamValue, ParamValueMap } from \"./param-editor.types\";\nimport { resolveParamValue } from \"./resolve-param-value\";\n\ntype AdvancedParam = Extract<\n Param,\n { type: \"range\" | \"segmented\" | \"actions\" | \"anchorGrid\" | \"vector\" | \"fileUpload\" }\n>;\n\ninterface ParamEditorAdvancedFieldProps {\n param: AdvancedParam;\n defaultValues: ParamValueMap;\n onChange: (id: string, value: ParamValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n presentation: \"stacked\" | \"horizontal\";\n}\n\nexport const ParamEditorAdvancedField = (props: ParamEditorAdvancedFieldProps) => {\n const { param, defaultValues, onChange, readOnly, fullWidth, presentation } = props;\n const common = {\n id: param.id,\n readOnly: readOnly || param.readOnly,\n onChange,\n fullWidth: presentation === \"horizontal\" ? false : fullWidth,\n };\n\n switch (param.type) {\n case \"range\":\n return (\n <RangeInput\n {...common}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n min={param.min}\n max={param.max}\n step={param.step}\n unit={param.unit}\n markerCount={param.markerCount}\n presentation={presentation}\n />\n );\n case \"segmented\":\n return (\n <SegmentedInput\n {...common}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n options={param.options}\n variant={param.variant}\n presentation={presentation}\n />\n );\n case \"actions\":\n return (\n <ActionInput\n {...common}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n options={param.options}\n presentation={presentation}\n />\n );\n case \"anchorGrid\":\n if (presentation === \"horizontal\") return null;\n return (\n <AnchorGridInput\n {...common}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n />\n );\n case \"vector\":\n return (\n <VectorInput\n {...common}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n xLabel={param.xLabel}\n yLabel={param.yLabel}\n min={param.min}\n max={param.max}\n step={param.step}\n />\n );\n case \"fileUpload\":\n return (\n <FileUploadInput\n id={param.id}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n accept={param.accept}\n multiple={param.multiple}\n uploadLabel={param.uploadLabel}\n readOnly={common.readOnly}\n presentation={presentation}\n onChange={onChange}\n />\n );\n }\n};\n","import type { Param } from \"./param-editor.types\";\n\nexport const isParamEditorRichControl = (param: Param) => param.type === \"fileUpload\";\n\nexport const isParamEditorHorizontalControl = (param: Param) => param.type !== \"anchorGrid\";\n","import { Badge, HStack, Image } from \"@chakra-ui/react\";\nimport type { Param } from \"./param-editor.types\";\nimport { ParamEditorControlItem } from \"./param-editor-control-item\";\nimport { ParamEditorReadOnlyValue } from \"./param-editor-read-only-value\";\n\ninterface ParamEditorReadOnlyFieldProps {\n param: Extract<Param, { type: \"readOnly\" }>;\n fullWidth?: boolean;\n}\n\nconst formatPrimitive = (value: string | number | boolean | null) => {\n if (value === null || value === \"\") return \"Not provided\";\n return String(value);\n};\n\nconst ReadOnlyContent = (props: Pick<ParamEditorReadOnlyFieldProps[\"param\"], \"value\">) => {\n const { value } = props;\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return <ParamEditorReadOnlyValue color=\"fg.muted\">None</ParamEditorReadOnlyValue>;\n }\n\n return (\n <HStack gap=\"2xs\" flexWrap=\"wrap\">\n {value.map((item, index) => (\n <Badge key={`${String(item)}-${index}`} variant=\"subtle\" colorPalette=\"gray\">\n {formatPrimitive(item)}\n </Badge>\n ))}\n </HStack>\n );\n }\n\n if (typeof value === \"object\" && value !== null) {\n const images = value.type === \"image\" ? [{ src: value.src, alt: value.alt }] : value.images;\n return (\n <HStack gap=\"2xs\" flexWrap=\"wrap\">\n {images.map((image) => (\n <Image\n key={`${image.src}-${image.alt}`}\n src={image.src}\n alt={image.alt}\n width=\"96px\"\n height=\"72px\"\n borderRadius=\"sm\"\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n objectFit=\"cover\"\n />\n ))}\n </HStack>\n );\n }\n\n if (typeof value === \"boolean\") {\n return <ParamEditorReadOnlyValue>{formatPrimitive(value)}</ParamEditorReadOnlyValue>;\n }\n\n return (\n <ParamEditorReadOnlyValue color={value === null || value === \"\" ? \"fg.muted\" : \"fg\"}>\n {formatPrimitive(value)}\n </ParamEditorReadOnlyValue>\n );\n};\n\nexport const ParamEditorReadOnlyField = (props: ParamEditorReadOnlyFieldProps) => {\n const { param, fullWidth } = props;\n\n return (\n <ParamEditorControlItem name={param.name} description={param.description} fullWidth={fullWidth}>\n <ReadOnlyContent value={param.value} />\n </ParamEditorControlItem>\n );\n};\n","import { Box, Flex } from \"@chakra-ui/react\";\nimport { BooleanInput } from \"./inputs/boolean-input\";\nimport { ColorInput } from \"./inputs/color-input\";\nimport { DateInput } from \"./inputs/date-input\";\nimport { HorizontalTextInput } from \"./inputs/horizontal-text-input\";\nimport { MarkdownInput } from \"./inputs/markdown-input\";\nimport { NumberInput } from \"./inputs/number-input\";\nimport { ResourceInput } from \"./inputs/resource-input\";\nimport { SelectionInput } from \"./inputs/selection-input\";\nimport { TextInput } from \"./inputs/text-input\";\nimport type { Param, ParamValue, ParamValueMap, ResourceRefValue } from \"./param-editor.types\";\nimport { ParamEditorAdvancedField } from \"./param-editor-advanced-field\";\nimport { ParamEditorLabel } from \"./param-editor-label\";\nimport { isParamEditorRichControl } from \"./param-editor-presentation\";\nimport { ParamEditorReadOnlyField } from \"./param-editor-read-only-field\";\nimport { ParamEditorReadOnlyValue } from \"./param-editor-read-only-value\";\nimport { resolveParamValue } from \"./resolve-param-value\";\n\ninterface ParamEditorFieldProps {\n param: Param;\n defaultValues: ParamValueMap;\n onChange: (id: string, value: ParamValue) => void;\n onOpenResource?: (ref: ResourceRefValue) => void;\n readOnly?: boolean;\n fullWidth?: boolean;\n presentation?: \"stacked\" | \"horizontal\";\n size?: \"xs\" | \"sm\";\n}\n\nconst PropertyField = (props: { param: Extract<Param, { type: \"property\" }>; fullWidth?: boolean }) => {\n const { param, fullWidth } = props;\n\n if (fullWidth) {\n return (\n <Box>\n <Box mb=\"xs\">\n <ParamEditorLabel name={param.name} description={param.description} />\n </Box>\n <ParamEditorReadOnlyValue>{param.value}</ParamEditorReadOnlyValue>\n </Box>\n );\n }\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"space-between\" minHeight=\"2rem\" gap=\"xs\">\n <ParamEditorLabel name={param.name} description={param.description} />\n <ParamEditorReadOnlyValue>{param.value}</ParamEditorReadOnlyValue>\n </Flex>\n );\n};\n\nexport const ParamEditorField = (props: ParamEditorFieldProps) => {\n const {\n param,\n defaultValues,\n onChange,\n onOpenResource,\n readOnly,\n fullWidth = false,\n presentation = \"stacked\",\n size = \"sm\",\n } = props;\n const horizontal = presentation === \"horizontal\";\n const richControl = isParamEditorRichControl(param);\n const common = {\n id: param.id,\n readOnly: readOnly || param.readOnly,\n onChange,\n fullWidth: horizontal ? richControl : fullWidth,\n size,\n };\n\n switch (param.type) {\n case \"number\":\n return (\n <NumberInput\n {...common}\n name={param.name}\n description={param.description || \"\"}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n min={param.min}\n max={param.max}\n step={param.step}\n hideLabel={horizontal}\n hideSlider={horizontal}\n />\n );\n case \"boolean\":\n return (\n <BooleanInput\n {...common}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n hideLabel={horizontal}\n />\n );\n case \"text\":\n if (horizontal) {\n return (\n <HorizontalTextInput\n {...common}\n name={param.name}\n description={param.description || \"\"}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n hideLabel\n />\n );\n }\n return (\n <TextInput\n {...common}\n name={param.name}\n description={param.description || \"\"}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n singleLine={param.singleLine}\n />\n );\n case \"markdown\":\n return (\n <MarkdownInput\n id={param.id}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n placeholder={param.placeholder}\n readOnly={common.readOnly}\n presentation={presentation}\n size={size}\n onChange={onChange}\n />\n );\n case \"selection\":\n return (\n <SelectionInput\n {...common}\n name={param.name}\n description={param.description || \"\"}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n options={param.options}\n multiSelect={param.multiSelect}\n placeholder={param.placeholder}\n clearable={param.clearable}\n disabled={param.disabled}\n hideLabel={horizontal}\n />\n );\n case \"date\":\n return (\n <DateInput\n {...common}\n name={param.name}\n description={param.description || \"\"}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n min={param.min}\n max={param.max}\n hideLabel={horizontal}\n />\n );\n case \"color\":\n return (\n <ColorInput\n {...common}\n name={param.name}\n description={param.description || \"\"}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n hideLabel={horizontal}\n />\n );\n case \"property\":\n return <PropertyField param={param} fullWidth={horizontal ? false : fullWidth} />;\n case \"readOnly\":\n return <ParamEditorReadOnlyField param={param} fullWidth={horizontal ? false : fullWidth} />;\n case \"resource\":\n return (\n <ResourceInput\n {...common}\n name={param.name}\n description={param.description}\n defaultValue={resolveParamValue(defaultValues, param.id, param.defaultValue)}\n options={param.options}\n multiSelect={param.multiSelect}\n editable={param.editable}\n placeholder={param.placeholder}\n emptyText={param.emptyText}\n onOpenResource={onOpenResource}\n presentation={presentation}\n />\n );\n case \"range\":\n case \"segmented\":\n case \"actions\":\n case \"anchorGrid\":\n case \"vector\":\n case \"fileUpload\":\n return (\n <ParamEditorAdvancedField\n param={param}\n defaultValues={defaultValues}\n onChange={onChange}\n readOnly={readOnly}\n fullWidth={fullWidth}\n presentation={presentation}\n />\n );\n default:\n return null;\n }\n};\n"],"names":["isImage","file","type","startsWith","formatSize","bytes","toString","Math","round","toFixed","AttachmentChip","props","$","_c","removeLabel","disabled","onRemove","previewUrl","setPreviewUrl","useState","t0","t1","url","URL","createObjectURL","revokeObjectURL","useEffect","t2","name","jsx","Text","t3","jsxs","Popover","placement","chakra","Image","t4","size","t5","t6","Symbol","for","X","t7","IconButton","t8","Badge","ParamEditorLabel","description","compact","undefined","Tooltip","Icon","CircleHelp","HStack","ParamEditorControlItem","hideLabel","fullWidth","orientation","labelTrailing","children","ParamEditorFieldLabel","label","header","Flex","Box","Chip","optionColors","optionIcons","value","icon","Circle","Bug","Sparkles","BookOpen","Wrench","Gauge","Feather","Scale","Layers","AlertTriangle","Star","Flag","Flame","Lightbulb","Shield","Eye","Clock","CheckCircle","Tag","Ticket","Code","GitPullRequest","ChartColumnIncreasing","CircleQuestionMark","ShieldAlert","getIconComponent","iconOptions","find","IconColorPicker","color","colorOptions","onColorChange","onIconChange","showIcons","ariaLabel","IconComponent","selectedIcon","t9","t10","t11","t12","t13","t14","optionColor","GridItem","map","Grid","t15","Fragment","entry","t16","t17","resolveSessionIndicatorIcon","status","LoaderCircle","CircleCheck","CircleAlert","CircleStop","CirclePause","ClockAlert","CircleDot","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","boxSize","cursor","onClick","Switch","React","forwardRef","ref","inputProps","rest","rootRef","thumbLabel","trackLabel","interactiveCursor","ChakraSwitch","off","on","ATTEMPT_STATUS_COLOR_ALIASES","amber","CHAKRA_COLOR_PALETTES","Set","workspaceBadgeSurfaceProps","bg","_light","_dark","_hover","resolveWorkspaceIcon","workspaceType","GitCommitIcon","GitBranchIcon","resolveAttemptStatusColor","resolvedColor","has","buildAttemptStatusTooltip","attemptStatus","handleIconClick","event","stopPropagation","handleBadgeClick","LeadingSessionIndicator","sessionStatus","onSessionIndicatorClick","sessionTooltip","WorkspaceTypeIndicator","initializing","shorthand","WorkspaceTypeIcon","displayLabel","Spinner","WorkspaceAttemptStatusIndicator","WorkspaceDiffTotals","diffAdditions","diffDeletions","WorkspaceDropdownTrigger","hasMultipleWorkspaces","onDropdownClick","ChevronDown","WorkspaceBadge","showLeadingSessionIndicator","selectionIndicator","multiSelect","selected","SquareCheck","Square","Check","selectionOptionIcon","option","SelectionMenu","triggerLabel","options","selectedIds","triggerVariant","triggerAriaLabel","onToggle","Button","borderColor","outline","boxShadow","trigger","Menu","includes","id","ListRow","ActionInput","defaultValue","onChange","readOnly","presentation","active","setActive","optionId","run","horizontal","selectedName","option_0","row","ANCHOR_GRID_VALUES","isAnchorGridValue","ParamEditorReadOnlyValue","boxProps","preserveWhitespace","AnchorGridInput","setValue","next","select","anchor","grid","BooleanInput","String","details","checked","ColorInput","open","setOpen","useRef","contentRef","timeoutRef","nextColor","current","clearTimeout","setTimeout","scheduleChange","isInsidePicker","target","node","contains","handleOutsideInteraction","document","addEventListener","removeEventListener","newColor","handleChange","event_0","root","currentTarget","ownerDocument","activeElement","handleBlur","valueElement","parseColor","details_0","onOpenChange","onFocusOutside","onInteractOutside","onBlur","onValueChange","rootProps","ColorPicker","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","picker","t28","DateInput","min","max","nextValue","newValue","Input","e","_temp","e_1","_temp2","e_0","key","blur","e_2","valueId","index","lastModified","createFileUploadValues","files","existing","multiple","offset","length","slice","getFileUploadSummary","values","state","candidate","some","count","filter","UploadStatus","noun","summary","bb0","queued","uploading","complete","error","empty","labels","Clock3","UploadQueue","Wrap","Stack","FileUploadInput","accept","uploadLabel","setValues","inputRef","commit","remove","click","Paperclip","button","Array","from","input","HorizontalTextInput","isExpanded","setIsExpanded","handleClick","trim","preventDefault","handleKeyDown","Textarea","MarkdownInput","placeholder","editorValue","LazyMarkdownEditor","editor","NumberInputRoot","ChakraNumberInput","NumberInputField","Slider","ChakraSlider","NumberInput","step","hideSlider","showSlider","useFullWidthLayout","Number","isNaN","valueAsNumber","next_0","details_1","details_2","clampToRange","lower","upper","snapToStep","origin","steps","formatUnitValue","unit","rounded","isInteger","normalizeRange","first","second","start","end","SliderMarks","_","positions","position","RangeInput","markerCount","trailing","slider","mainAxis","optionIcon","openExternal","href","window","copyToClipboard","text","navigator","clipboard","writeText","catch","ResourceChip","onOpenResource","Boolean","copyText","handleSelect","ResourceBadge","ResourceChipList","emptyText","toIds","isArray","resolveOptions","ids","FieldShell","control","ResourceSelectMenu","ResourceInput","editable","emitChange","selectedOptions","interactive","toggleOption","next_1","next_2","removeOption","optionId_0","next_3","entry_0","Plus","SegmentedInput","variant","indicatorColor","Group","group","SelectionInput","clearable","names","selectedId","join","getDisplayText","nextValue_0","item","handleToggle","T0","triggerOption","menu","optionName","TextInput","singleLine","e_3","ParamEditorInlineGroup","clampAxis","bounds","NEGATIVE_INFINITY","POSITIVE_INFINITY","updateVectorAxis","axis","clamped","x","y","VectorAxisField","fieldId","onCommit","VectorInput","xLabel","yLabel","updated","commitAxis","resolveParamValue","defaultValues","paramId","fallback","ParamEditorAdvancedField","param","common","isParamEditorRichControl","isParamEditorHorizontalControl","formatPrimitive","ReadOnlyContent","alt","images","src","ParamEditorReadOnlyField","image","PropertyField","ParamEditorField","richControl"],"mappings":"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"}
|