@pstdio/ui 0.16.0 → 0.17.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/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 +12 -0
- package/dist/components/data-table/data-table-header.d.ts +18 -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/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/{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/param-editor/index.d.ts +2 -1
- package/dist/components/param-editor/inputs/selection-input.d.ts +6 -6
- package/dist/components/param-editor/inputs/selection-menu.d.ts +29 -0
- package/dist/components/param-editor/param-editor-horizontal.d.ts +1 -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 +35 -6
- 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/{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 +1271 -0
- package/dist/data-table.js.map +1 -0
- package/dist/diff.js +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1885 -3360
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer-toolbar-B9ro-9z1.js +1318 -0
- package/dist/kanban-renderer-toolbar-B9ro-9z1.js.map +1 -0
- package/dist/kanban-renderer.js +1087 -0
- package/dist/kanban-renderer.js.map +1 -0
- package/dist/list-row-YRUxEcy3.js +808 -0
- package/dist/list-row-YRUxEcy3.js.map +1 -0
- package/dist/param-editor-CYZJbmKu.js +933 -0
- package/dist/param-editor-CYZJbmKu.js.map +1 -0
- package/dist/param-editor-read-only-field-DgtLqcFa.js +925 -0
- package/dist/param-editor-read-only-field-DgtLqcFa.js.map +1 -0
- package/dist/prism-BXb57lxL.js +125 -0
- package/dist/prism-BXb57lxL.js.map +1 -0
- package/dist/rich-message-DBf_5YlW.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/sizes.d.ts +23 -0
- package/dist/theme/recipes/button.d.ts +6 -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-CNhnbvcE.js} +208 -162
- package/dist/theme-CNhnbvcE.js.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/tree-list-CZHLAURU.js +1033 -0
- package/dist/tree-list-CZHLAURU.js.map +1 -0
- package/package.json +10 -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/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/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-read-only-field-DgtLqcFa.js","sources":["../src/components/param-editor/param-editor-label.tsx","../src/components/param-editor/param-editor-control-item.tsx","../src/components/param-editor/param-editor-read-only-value.tsx","../src/components/param-editor/inputs/color-input.tsx","../src/components/param-editor/inputs/date-input.tsx","../src/components/primitives/number-input.tsx","../src/components/primitives/slider.tsx","../src/components/param-editor/inputs/number-input.tsx","../src/components/primitives/icon-color-picker.tsx","../src/components/primitives/session-indicator.tsx","../src/components/primitives/workspace-badge.tsx","../src/components/param-editor/inputs/selection-menu.tsx","../src/components/param-editor/inputs/selection-input.tsx","../src/components/param-editor/param-editor-read-only-field.tsx"],"sourcesContent":["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}\n\nexport const ParamEditorLabel = (props: ParamEditorLabelProps) => {\n const { name, description } = props;\n\n return (\n <HStack gap=\"1\" alignItems=\"center\" minW=\"0\">\n <Text textStyle=\"label/S/medium\" color=\"fg.muted\" truncate>\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 { 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, 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}\n\nexport const ColorInput = (props: ColorInputProps) => {\n const { id, defaultValue, name, onChange, description, readOnly, hideLabel = false, fullWidth = false } = 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=\"sm\" 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}\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 } = 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=\"sm\"\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=\"sm\"\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 { 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.625rem\"\n bg=\"fg\"\n borderWidth=\"1px\"\n borderColor=\"bg\"\n borderRadius=\"2xs\"\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}\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 } = 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=\"sm\"\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 h=\"2rem\"\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=\"sm\"\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 h=\"2rem\"\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 size=\"sm\"\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","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 Layers,\n Lightbulb,\n Scale,\n Shield,\n ShieldAlert,\n Sparkles,\n Star,\n Tag,\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: \"code\", label: \"code\", icon: Code },\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 { 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, 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}\n\nexport interface SelectionMenuProps {\n triggerLabel: ReactNode;\n options: SelectionMenuOption[];\n selectedIds: string[];\n multiSelect: boolean;\n disabled?: boolean;\n fullWidth?: boolean;\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 { triggerLabel, options, selectedIds, multiSelect, disabled, fullWidth, onToggle } = props;\n\n return (\n <Menu.Root closeOnSelect={!multiSelect}>\n <Menu.Trigger asChild>\n <Button\n size=\"sm\"\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor=\"border\"\n disabled={disabled}\n textStyle=\"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 </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} 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 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 { 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}\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 } = 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 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 { 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 if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\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 (\n <Badge variant=\"subtle\" colorPalette={value ? \"green\" : \"gray\"} width=\"fit-content\">\n {formatPrimitive(value)}\n </Badge>\n );\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"],"names":["ParamEditorLabel","props","$","_c","name","description","t0","jsx","Text","t1","Tooltip","Icon","CircleHelp","t2","HStack","ParamEditorControlItem","hideLabel","fullWidth","orientation","labelTrailing","children","undefined","t3","ParamEditorFieldLabel","label","header","t4","jsxs","Flex","t5","Box","ParamEditorReadOnlyValue","boxProps","preserveWhitespace","ColorInput","id","defaultValue","onChange","readOnly","value","setValue","useState","open","setOpen","rootRef","useRef","contentRef","timeoutRef","nextColor","current","clearTimeout","setTimeout","scheduleChange","useEffect","t6","isInsidePicker","target","node","contains","handleOutsideInteraction","event","document","addEventListener","removeEventListener","t7","newColor","handleChange","t8","Symbol","for","event_0","root","currentTarget","ownerDocument","activeElement","handleBlur","t9","valueElement","t10","t11","parseColor","t12","details","t13","details_0","toString","t14","onOpenChange","onFocusOutside","onInteractOutside","onBlur","onValueChange","disabled","rootProps","t15","t16","ColorPicker","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","picker","t27","DateInput","min","max","nextValue","newValue","Input","e","_temp","e_1","_temp2","e_0","key","blur","e_2","NumberInputRoot","React","forwardRef","ref","rest","ChakraNumberInput","NumberInputField","Slider","ChakraSlider","boxSize","borderColor","outline","boxShadow","NumberInput","step","hideSlider","showSlider","useFullWidthLayout","next","Number","isNaN","valueAsNumber","next_0","details_1","details_2","optionColors","optionIcons","icon","Circle","Bug","Sparkles","BookOpen","Wrench","Gauge","Feather","Scale","Layers","AlertTriangle","Star","Flag","Flame","Lightbulb","Shield","Eye","Clock","CheckCircle","Tag","Code","ChartColumnIncreasing","CircleQuestionMark","ShieldAlert","getIconComponent","iconOptions","find","IconColorPicker","color","colorOptions","onColorChange","onIconChange","showIcons","ariaLabel","IconComponent","selectedIcon","Popover","IconButton","optionColor","GridItem","map","Grid","Fragment","entry","resolveSessionIndicatorIcon","status","LoaderCircle","CircleCheck","CircleAlert","CircleStop","CirclePause","ClockAlert","CircleDot","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","cursor","onClick","ATTEMPT_STATUS_COLOR_ALIASES","amber","CHAKRA_COLOR_PALETTES","Set","workspaceBadgeSurfaceProps","bg","_light","_dark","_hover","resolveWorkspaceIcon","workspaceType","GitCommitIcon","GitBranchIcon","resolveAttemptStatusColor","startsWith","resolvedColor","has","buildAttemptStatusTooltip","attemptStatus","handleIconClick","stopPropagation","handleBadgeClick","LeadingSessionIndicator","sessionStatus","onSessionIndicatorClick","sessionTooltip","WorkspaceTypeIndicator","initializing","shorthand","WorkspaceTypeIcon","displayLabel","Spinner","WorkspaceAttemptStatusIndicator","WorkspaceDiffTotals","diffAdditions","diffDeletions","WorkspaceDropdownTrigger","hasMultipleWorkspaces","onDropdownClick","ChevronDown","WorkspaceBadge","showLeadingSessionIndicator","Badge","selectionIndicator","multiSelect","selected","SquareCheck","Square","Check","selectionOptionIcon","option","SelectionMenu","triggerLabel","options","selectedIds","onToggle","Menu","Button","includes","ListRow","SelectionInput","placeholder","clearable","Array","isArray","names","selectedId","filter","length","join","slice","getDisplayText","nextValue_0","commit","optionId","item","handleToggle","T0","bb0","triggerOption","option_0","menu","optionName","Boolean","formatPrimitive","String","ReadOnlyContent","alt","images","src","type","ParamEditorReadOnlyField","param","index","image","Image"],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { jsx as r, jsxs as w } from "react/jsx-runtime";
|
|
2
|
+
import { c as $ } from "react/compiler-runtime";
|
|
3
|
+
import { Text as j, Popover as L, chakra as O, Image as F, IconButton as M, Badge as X, Box as S, Flex as H, Input as A, Textarea as N } from "@chakra-ui/react";
|
|
4
|
+
import { X as V } from "lucide-react";
|
|
5
|
+
import { useState as _, useEffect as D, useRef as G } from "react";
|
|
6
|
+
import { P as U, a as q } from "./param-editor-read-only-field-DgtLqcFa.js";
|
|
7
|
+
const J = (t) => t.type.startsWith("image/"), Q = (t) => t < 1024 ? `${t.toString()} B` : t < 1024 * 1024 ? `${Math.round(t / 1024).toString()} KB` : `${(t / (1024 * 1024)).toFixed(1)} MB`, oe = (t) => {
|
|
8
|
+
const e = $(22), {
|
|
9
|
+
file: l,
|
|
10
|
+
removeLabel: h,
|
|
11
|
+
disabled: a,
|
|
12
|
+
onRemove: b
|
|
13
|
+
} = t, [s, c] = _(null);
|
|
14
|
+
let x, o;
|
|
15
|
+
e[0] !== l ? (x = () => {
|
|
16
|
+
if (!J(l))
|
|
17
|
+
return;
|
|
18
|
+
const C = URL.createObjectURL(l);
|
|
19
|
+
return c(C), () => URL.revokeObjectURL(C);
|
|
20
|
+
}, o = [l], e[0] = l, e[1] = x, e[2] = o) : (x = e[1], o = e[2]), D(x, o);
|
|
21
|
+
let n;
|
|
22
|
+
e[3] !== l.name ? (n = /* @__PURE__ */ r(j, { as: "span", textStyle: "label/XS/medium", lineClamp: 1, maxW: "180px", children: l.name }), e[3] = l.name, e[4] = n) : n = e[4];
|
|
23
|
+
const v = n;
|
|
24
|
+
let d;
|
|
25
|
+
e[5] !== l.name || e[6] !== v || e[7] !== s ? (d = s ? /* @__PURE__ */ w(L.Root, { positioning: {
|
|
26
|
+
placement: "top"
|
|
27
|
+
}, children: [
|
|
28
|
+
/* @__PURE__ */ r(L.Trigger, { asChild: !0, children: /* @__PURE__ */ r(O.button, { type: "button", cursor: "pointer", minW: "0", display: "inline-flex", children: v }) }),
|
|
29
|
+
/* @__PURE__ */ r(L.Positioner, { children: /* @__PURE__ */ r(L.Content, { w: "auto", p: "2xs", bg: "bg", children: /* @__PURE__ */ r(F, { src: s, alt: l.name, maxW: "240px", maxH: "240px", borderRadius: "sm" }) }) })
|
|
30
|
+
] }) : v, e[5] = l.name, e[6] = v, e[7] = s, e[8] = d) : d = e[8];
|
|
31
|
+
let m;
|
|
32
|
+
e[9] !== l.size ? (m = Q(l.size), e[9] = l.size, e[10] = m) : m = e[10];
|
|
33
|
+
let u;
|
|
34
|
+
e[11] !== m ? (u = /* @__PURE__ */ r(j, { as: "span", textStyle: "label/XS/regular", color: "fg.subtle", children: m }), e[11] = m, e[12] = u) : u = e[12];
|
|
35
|
+
let p;
|
|
36
|
+
e[13] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (p = /* @__PURE__ */ r(V, { size: 12 }), e[13] = p) : p = e[13];
|
|
37
|
+
let f;
|
|
38
|
+
e[14] !== a || e[15] !== b || e[16] !== h ? (f = /* @__PURE__ */ r(M, { size: "2xs", variant: "ghost", "aria-label": h, disabled: a, onClick: b, children: p }), e[14] = a, e[15] = b, e[16] = h, e[17] = f) : f = e[17];
|
|
39
|
+
let g;
|
|
40
|
+
return e[18] !== d || e[19] !== u || e[20] !== f ? (g = /* @__PURE__ */ w(X, { variant: "subtle", colorPalette: "gray", gap: "2xs", pr: "2xs", children: [
|
|
41
|
+
d,
|
|
42
|
+
u,
|
|
43
|
+
f
|
|
44
|
+
] }), e[18] = d, e[19] = u, e[20] = f, e[21] = g) : g = e[21], g;
|
|
45
|
+
}, ae = (t) => {
|
|
46
|
+
const e = $(32), {
|
|
47
|
+
id: l,
|
|
48
|
+
defaultValue: h,
|
|
49
|
+
name: a,
|
|
50
|
+
onChange: b,
|
|
51
|
+
description: s,
|
|
52
|
+
readOnly: c,
|
|
53
|
+
hideLabel: x
|
|
54
|
+
} = t, o = x === void 0 ? !1 : x, [n, v] = _(h), [d, m] = _(!1), u = G(null);
|
|
55
|
+
let p;
|
|
56
|
+
e[0] !== l || e[1] !== b ? (p = (i) => {
|
|
57
|
+
u.current && clearTimeout(u.current), u.current = setTimeout(() => b(l, i), 540);
|
|
58
|
+
}, e[0] = l, e[1] = b, e[2] = p) : p = e[2];
|
|
59
|
+
const f = p;
|
|
60
|
+
let g, C;
|
|
61
|
+
e[3] !== h ? (g = () => {
|
|
62
|
+
v(h);
|
|
63
|
+
}, C = [h], e[3] = h, e[4] = g, e[5] = C) : (g = e[4], C = e[5]), D(g, C);
|
|
64
|
+
let z;
|
|
65
|
+
e[6] !== f ? (z = (i) => {
|
|
66
|
+
v(i), f(i);
|
|
67
|
+
}, e[6] = f, e[7] = z) : z = e[7];
|
|
68
|
+
const R = z;
|
|
69
|
+
let P;
|
|
70
|
+
e[8] !== c ? (P = () => {
|
|
71
|
+
c || m(!0);
|
|
72
|
+
}, e[8] = c, e[9] = P) : P = e[9];
|
|
73
|
+
const T = P;
|
|
74
|
+
let W;
|
|
75
|
+
e[10] !== n ? (W = () => {
|
|
76
|
+
n.trim().length === 0 && m(!1);
|
|
77
|
+
}, e[10] = n, e[11] = W) : W = e[11];
|
|
78
|
+
const k = W;
|
|
79
|
+
let I;
|
|
80
|
+
e[12] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (I = (i) => {
|
|
81
|
+
i.key === "Escape" && (m(!1), i.preventDefault());
|
|
82
|
+
}, e[12] = I) : I = e[12];
|
|
83
|
+
const K = I;
|
|
84
|
+
if (c) {
|
|
85
|
+
let i;
|
|
86
|
+
e[13] !== s || e[14] !== o || e[15] !== a ? (i = !o && /* @__PURE__ */ r(U, { name: a, description: s }), e[13] = s, e[14] = o, e[15] = a, e[16] = i) : i = e[16];
|
|
87
|
+
let y;
|
|
88
|
+
e[17] !== n ? (y = /* @__PURE__ */ r(q, { preserveWhitespace: !0, children: n }), e[17] = n, e[18] = y) : y = e[18];
|
|
89
|
+
let E;
|
|
90
|
+
return e[19] !== i || e[20] !== y ? (E = /* @__PURE__ */ r(S, { position: "relative", flex: "1", minW: "12.5rem", children: /* @__PURE__ */ w(H, { alignItems: "center", justifyContent: "space-between", minHeight: "2rem", gap: "xs", children: [
|
|
91
|
+
i,
|
|
92
|
+
y
|
|
93
|
+
] }) }), e[19] = i, e[20] = y, e[21] = E) : E = e[21], E;
|
|
94
|
+
}
|
|
95
|
+
let B;
|
|
96
|
+
return e[22] !== s || e[23] !== k || e[24] !== R || e[25] !== T || e[26] !== o || e[27] !== d || e[28] !== a || e[29] !== c || e[30] !== n ? (B = /* @__PURE__ */ r(S, { position: "relative", flex: "1", minW: "12.5rem", children: /* @__PURE__ */ r(S, { position: "relative", minHeight: "2rem", children: d ? /* @__PURE__ */ w(S, { position: "absolute", top: "0", left: "0", right: "0", zIndex: "10", bg: "bg", borderWidth: "1px", borderStyle: "solid", borderColor: "border", borderRadius: "lg", p: "2", transition: "border-color 0.2s ease-in-out", boxShadow: "none", _hover: {
|
|
97
|
+
borderColor: "border.accent-light"
|
|
98
|
+
}, _active: {
|
|
99
|
+
borderColor: "border.accent-light"
|
|
100
|
+
}, _focusWithin: {
|
|
101
|
+
borderColor: "border.accent-light",
|
|
102
|
+
boxShadow: "none"
|
|
103
|
+
}, children: [
|
|
104
|
+
!o && /* @__PURE__ */ r(S, { mb: "sm", children: /* @__PURE__ */ r(U, { name: a, description: s }) }),
|
|
105
|
+
/* @__PURE__ */ r(N, { className: "nodrag", readOnly: c, width: "100%", size: "sm", placeholder: o ? a : void 0, value: n, onChange: (i) => R(i.target.value), onBlur: k, onKeyDown: K, rows: 3, resize: "vertical", autoFocus: !0 })
|
|
106
|
+
] }) : /* @__PURE__ */ w(H, { alignItems: "center", justifyContent: "space-between", height: "2rem", gap: "xs", children: [
|
|
107
|
+
!o && /* @__PURE__ */ r(U, { name: a, description: s }),
|
|
108
|
+
/* @__PURE__ */ r(A, { className: "nodrag", readOnly: c, flex: "1", maxW: "12.5rem", size: "sm", type: "text", placeholder: o ? a : void 0, value: n, onClick: T, onChange: (i) => R(i.target.value), onKeyUp: Y })
|
|
109
|
+
] }) }) }), e[22] = s, e[23] = k, e[24] = R, e[25] = T, e[26] = o, e[27] = d, e[28] = a, e[29] = c, e[30] = n, e[31] = B) : B = e[31], B;
|
|
110
|
+
};
|
|
111
|
+
function Y(t) {
|
|
112
|
+
t.key === "Enter" && t.currentTarget.blur();
|
|
113
|
+
}
|
|
114
|
+
const Z = (t) => t.default ?? t, se = async () => {
|
|
115
|
+
const t = globalThis;
|
|
116
|
+
if (t.Prism) return;
|
|
117
|
+
const e = await import("prismjs");
|
|
118
|
+
t.Prism = Z(e);
|
|
119
|
+
};
|
|
120
|
+
export {
|
|
121
|
+
oe as A,
|
|
122
|
+
ae as H,
|
|
123
|
+
se as i
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=prism-BXb57lxL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-BXb57lxL.js","sources":["../src/components/overlays/attachment-chip.tsx","../src/components/param-editor/inputs/horizontal-text-input.tsx","../src/utils/prism.ts"],"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=\"subtle\" colorPalette=\"gray\" 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 { 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}\n\nexport const HorizontalTextInput = (props: HorizontalTextInputProps) => {\n const { id, defaultValue, name, onChange, description, readOnly, hideLabel = false } = 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=\"sm\"\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=\"sm\"\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","const readDefaultExport = (module: { default?: unknown }) => module.default ?? module;\n\nexport const installPrismGlobal = async () => {\n const globalScope = globalThis as typeof globalThis & { Prism?: unknown };\n if (globalScope.Prism) return;\n\n const prismModule = await import(\"prismjs\");\n globalScope.Prism = readDefaultExport(prismModule);\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","HorizontalTextInput","id","defaultValue","onChange","description","readOnly","hideLabel","undefined","value","setValue","isExpanded","setIsExpanded","timeoutRef","useRef","nextValue","current","clearTimeout","setTimeout","scheduleChange","newValue","handleChange","handleClick","trim","length","handleBlur","e","key","preventDefault","handleKeyDown","ParamEditorLabel","t9","ParamEditorReadOnlyValue","t10","Box","Flex","borderColor","boxShadow","Textarea","e_2","target","Input","e_0","_temp","e_1","currentTarget","blur","readDefaultExport","module","default","installPrismGlobal","globalScope","globalThis","Prism","prismModule"],"mappings":"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"}
|