@reforma/components 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/Composer/Composer.module.css +1 -0
  2. package/dist/Composer/Composer.module.css.js +26 -0
  3. package/dist/Composer/Composer.module.css.js.map +1 -0
  4. package/dist/Composer/RichField.d.ts +3 -0
  5. package/dist/Composer/RichField.d.ts.map +1 -0
  6. package/dist/Composer/RichField.js +44 -0
  7. package/dist/Composer/RichField.js.map +1 -0
  8. package/dist/Composer/context.d.ts +44 -0
  9. package/dist/Composer/context.d.ts.map +1 -0
  10. package/dist/Composer/context.js +205 -0
  11. package/dist/Composer/context.js.map +1 -0
  12. package/dist/Composer/index.d.ts +5 -0
  13. package/dist/Composer/index.d.ts.map +1 -0
  14. package/dist/Composer/index.js +18 -0
  15. package/dist/{CreateComposer → Composer}/index.js.map +1 -1
  16. package/dist/Composer/parts.d.ts +22 -0
  17. package/dist/Composer/parts.d.ts.map +1 -0
  18. package/dist/Composer/parts.js +231 -0
  19. package/dist/Composer/parts.js.map +1 -0
  20. package/dist/{CreateComposer → Composer}/types.d.ts +6 -6
  21. package/dist/Composer/types.d.ts.map +1 -0
  22. package/dist/Modal/Modal.js +2 -2
  23. package/dist/Modal/Modal.js.map +1 -1
  24. package/dist/chat/Message/streamdown/codeCitation.d.ts.map +1 -1
  25. package/dist/chat/Message/streamdown/codeCitation.js +7 -7
  26. package/dist/chat/Message/streamdown/codeCitation.js.map +1 -1
  27. package/dist/chat/Message/turn/MessageTurnStore.js +23 -23
  28. package/dist/chat/Message/turn/MessageTurnStore.js.map +1 -1
  29. package/dist/chat/Tool/install-dependencies/InstallDependenciesTool.d.ts.map +1 -1
  30. package/dist/chat/Tool/install-dependencies/InstallDependenciesTool.js +2 -1
  31. package/dist/chat/Tool/install-dependencies/InstallDependenciesTool.js.map +1 -1
  32. package/dist/chat/Tool/mountTool.d.ts +6 -0
  33. package/dist/chat/Tool/mountTool.d.ts.map +1 -0
  34. package/dist/chat/Tool/project-env/ProjectEnvTool.d.ts.map +1 -1
  35. package/dist/chat/Tool/project-env/ProjectEnvTool.js +2 -1
  36. package/dist/chat/Tool/project-env/ProjectEnvTool.js.map +1 -1
  37. package/dist/chat/Tool/shell/ToolShell.d.ts.map +1 -1
  38. package/dist/chat/Tool/shell/ToolShell.js +86 -79
  39. package/dist/chat/Tool/shell/ToolShell.js.map +1 -1
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +317 -304
  43. package/dist/index.js.map +1 -1
  44. package/dist/modals/ConfirmModal.d.ts +3 -1
  45. package/dist/modals/ConfirmModal.d.ts.map +1 -1
  46. package/dist/modals/ConfirmModal.js +61 -55
  47. package/dist/modals/ConfirmModal.js.map +1 -1
  48. package/dist/node_modules/react-aria/dist/private/interactions/useFocusable.js.map +1 -1
  49. package/package.json +2 -2
  50. package/dist/CreateComposer/CreateComposer.d.ts +0 -26
  51. package/dist/CreateComposer/CreateComposer.d.ts.map +0 -1
  52. package/dist/CreateComposer/CreateComposer.js +0 -338
  53. package/dist/CreateComposer/CreateComposer.js.map +0 -1
  54. package/dist/CreateComposer/CreateComposer.module.css +0 -1
  55. package/dist/CreateComposer/CreateComposer.module.css.js +0 -24
  56. package/dist/CreateComposer/CreateComposer.module.css.js.map +0 -1
  57. package/dist/CreateComposer/index.d.ts +0 -3
  58. package/dist/CreateComposer/index.d.ts.map +0 -1
  59. package/dist/CreateComposer/index.js +0 -5
  60. package/dist/CreateComposer/types.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ToolShell.js","sources":["../../../../src/chat/Tool/shell/ToolShell.tsx"],"sourcesContent":["import { Text } from '@reforma/components/Text';\nimport { ChevronDown } from '@reforma/icons/8';\nimport { cn, mergeRefs } from '@reforma/lib';\nimport {\n createContext,\n HTMLAttributes,\n use,\n useMemo,\n useRef,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { mergeProps } from 'react-aria';\nimport { OverlayTriggerStateContext } from 'react-aria-components';\n\nimport {\n Collapsible,\n CollapsibleMotionContent,\n CollapsibleTrigger,\n useCollapsible,\n} from '../../../Collapsible';\nimport { Pressable } from '../../../Pressable';\nimport { Shimmer } from '../../../Shimmer';\nimport { Show } from '../../../Show';\nimport { TOOL_INTERRUPTED_MESSAGE } from '../helpers';\nimport { useToolProgress, type ToolProgressState } from './toolProgress';\nimport styles from './ToolShell.module.css';\nimport { FailedToolTitleTooltip, isFailedToolStatus, ToolShellStatusIcon } from './ToolShellStatusIcon';\n\ntype ToolShellContextValue = {\n collapsible: boolean;\n};\n\nconst ToolShellContext = createContext<ToolShellContextValue | null>(null);\n\nconst HEADER_TRIGGER_ATTR = 'data-tool-shell-header';\n\n/** Clicks on nested controls (e.g. file chips) must not toggle the collapsible header. */\nfunction isNestedHeaderInteractive(target: EventTarget | null, header: HTMLElement): boolean {\n if (!(target instanceof Element)) {\n return false;\n }\n\n const interactive = target.closest(\n 'a[href], input, textarea, select, [role=\"link\"]'\n ) ?? target.closest('button, [role=\"button\"]');\n\n if (!interactive || !header.contains(interactive)) {\n return false;\n }\n\n return !interactive.hasAttribute(HEADER_TRIGGER_ATTR);\n}\n\n/** Compact tool row chrome: summary row + optional body. Set `collapsible` on the root to enable disclosure. */\nexport type ToolShellProps = HTMLAttributes<HTMLDivElement> & {\n /** When true, root is a collapsible and the header is the trigger. Body still mounts via {@link ToolShellContent}. */\n collapsible?: boolean;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n};\n\nexport function ToolShell({\n collapsible = false,\n defaultOpen = false,\n open,\n onOpenChange,\n isDisabled,\n className,\n children,\n ...props\n}: ToolShellProps) {\n const context = useMemo(() => ({ collapsible }), [collapsible]);\n\n if (collapsible) {\n return (\n <ToolShellContext value={ context }>\n <Collapsible\n className={ cn(styles.root, className) }\n data-slot=\"tool\"\n defaultOpen={ defaultOpen }\n open={ open }\n onOpenChange={ onOpenChange }\n isDisabled={ isDisabled }\n { ...props }\n >\n {children}\n </Collapsible>\n </ToolShellContext>\n );\n }\n\n return (\n <ToolShellContext value={ context }>\n <div\n className={ cn(styles.root, className) }\n data-slot=\"tool\"\n { ...props }\n >\n {children}\n </div>\n </ToolShellContext>\n );\n}\n\nexport interface ToolShellHeaderProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'title' | 'type'> {\n state: string;\n /** Idle label (secondary text). Shimmers with {@link titleInProgress} while the tool runs. */\n title?: string;\n /** In-progress label; defaults to `title` when omitted. */\n titleInProgress?: string;\n /** Override interrupted copy when the run ended mid-tool (defaults to {@link TOOL_INTERRUPTED_MESSAGE}). */\n titleInterrupted?: string;\n /** When false, the title stays static while the tool runs (default true). */\n shimmer?: boolean;\n /** Optional leading icon before the title (e.g. Agent). */\n icon?: ReactNode;\n /** Sits between the icon and the title. */\n beforeTitle?: ReactNode;\n /** Ellipsize a long title in the row. */\n truncateTitle?: boolean;\n /** Error or denial detail; shown in a tooltip on the struck title. */\n statusDetail?: string | undefined;\n /**\n * Strike the idle title. Defaults to the same signal as the muted status icon\n * (SDK error/denial, or a `statusDetail` logical failure).\n */\n failed?: boolean;\n /** Tool is waiting on the user (e.g. AskUserQuestion) — do not treat idle non-terminal as stalled. */\n awaitingUser?: boolean;\n /**\n * Whole row is pressable and shows the hover chevron. `onPress` runs a custom\n * action (subagent). Without it, a parent `PopoverTrigger` supplies the press\n * (file list). Ignored when the shell is collapsible.\n */\n onPress?: () => void;\n /** Show the chevron and accept press from context when `onPress` is omitted. */\n disclosure?: boolean;\n ref?: Ref<HTMLDivElement>;\n children?: ReactNode;\n}\n\ntype ToolShellHeaderTitleProps = {\n title?: string;\n titleInProgress?: string;\n titleInterrupted?: string;\n live: boolean;\n stalled: boolean;\n shimmer: boolean;\n failed: boolean;\n truncate?: boolean;\n statusDetail?: string;\n};\n\nfunction ToolShellHeaderTitle({\n title,\n titleInProgress,\n titleInterrupted,\n live,\n stalled,\n shimmer,\n failed,\n truncate,\n statusDetail,\n}: ToolShellHeaderTitleProps) {\n const labelClassName = cn(\n styles.headerLabel,\n truncate && styles.headerLabelTruncate,\n 'whitespace-nowrap'\n );\n\n if (stalled) {\n return (\n <Text color=\"danger\" className={ labelClassName }>\n {titleInterrupted ?? TOOL_INTERRUPTED_MESSAGE}\n </Text>\n );\n }\n\n const label = title ?? titleInProgress;\n\n if (!label) {\n return null;\n }\n\n const progressLabel = titleInProgress ?? label;\n\n if (live && shimmer) {\n return (\n <Shimmer as=\"span\" className={ labelClassName } duration={ 1 }>\n {progressLabel}\n </Shimmer>\n );\n }\n\n if (failed && !live) {\n return (\n <FailedToolTitleTooltip statusDetail={ statusDetail }>\n <Text\n decoration=\"line-through\"\n color=\"secondary\"\n className={ labelClassName }\n aria-label={ `${ label } failed` }\n >\n {label}\n </Text>\n </FailedToolTitleTooltip>\n );\n }\n\n return (\n <Text className={ labelClassName }>\n {live ? progressLabel : label}\n </Text>\n );\n}\n\ntype ToolShellHeaderViewProps = ToolShellHeaderProps & {\n progress: ToolProgressState;\n};\n\nfunction ToolShellHeaderStatic({\n state,\n title,\n titleInProgress,\n titleInterrupted,\n icon,\n beforeTitle,\n children,\n statusDetail,\n failed,\n truncateTitle,\n className,\n progress,\n shimmer,\n onPress,\n disclosure,\n ref,\n}: ToolShellHeaderViewProps) {\n const overlay = use(OverlayTriggerStateContext);\n const expanded = overlay?.isOpen === true;\n const pressable = onPress != null || disclosure === true;\n const { live, stalled } = progress;\n const detail = stalled\n ? (statusDetail?.trim() || TOOL_INTERRUPTED_MESSAGE)\n : statusDetail;\n const statusState = stalled ? 'output-error' : state;\n const titleFailed = failed ?? isFailedToolStatus(statusState, detail);\n const row = (\n <>\n <ToolShellStatusIcon\n icon={ icon }\n state={ statusState }\n statusDetail={ detail }\n className={ styles.headerIcon }\n />\n {beforeTitle}\n\n <ToolShellHeaderTitle\n title={ title }\n titleInProgress={ titleInProgress }\n titleInterrupted={ titleInterrupted }\n live={ live }\n stalled={ stalled }\n shimmer={ shimmer !== false }\n failed={ titleFailed }\n truncate={ truncateTitle }\n statusDetail={ detail }\n />\n {children}\n <Show when={ pressable }>\n <ChevronDown\n className={ cn('chevron', 'next', styles.toolChevron) }\n aria-expanded={ overlay ? expanded : undefined }\n aria-hidden\n />\n </Show>\n </>\n );\n\n if (pressable) {\n return (\n <Pressable ref={ ref } { ...(onPress ? { onPress } : {}) }>\n <div\n role=\"button\"\n className={ cn(styles.headerRow, styles.headerTrigger, className) }\n aria-busy={ live }\n aria-expanded={ overlay ? expanded : undefined }\n >\n {row}\n </div>\n </Pressable>\n );\n }\n\n return (\n <div\n className={ cn(styles.headerRow, styles.headerNonInteractive, className) }\n aria-busy={ live }\n >\n {row}\n </div>\n );\n}\n\nfunction ToolShellHeaderCollapsible({\n state,\n title,\n titleInProgress,\n titleInterrupted,\n icon,\n beforeTitle,\n children,\n statusDetail,\n failed,\n truncateTitle,\n className,\n progress,\n shimmer,\n}: ToolShellHeaderViewProps) {\n const { state: collapsibleState, triggerProps, triggerRef } = useCollapsible();\n const headerRef = useRef<HTMLDivElement>(null);\n const { live, stalled } = progress;\n const detail = stalled\n ? (statusDetail?.trim() || TOOL_INTERRUPTED_MESSAGE)\n : statusDetail;\n const statusState = stalled ? 'output-error' : state;\n const titleFailed = failed ?? isFailedToolStatus(statusState, detail);\n\n const triggerOnPress = (triggerProps as { onPress?: (event: { target: EventTarget }) => void }).onPress;\n\n const hostProps = mergeProps(triggerProps, {\n [HEADER_TRIGGER_ATTR]: '',\n className: cn(styles.headerRow, styles.headerTrigger, className),\n ref: mergeRefs(triggerRef, headerRef),\n 'aria-busy': live,\n 'aria-expanded': collapsibleState.isExpanded,\n onPress: (event: { target: EventTarget }) => {\n const header = headerRef.current;\n\n if (header && isNestedHeaderInteractive(event.target, header)) {\n return;\n }\n\n triggerOnPress?.(event);\n },\n });\n\n return (\n <CollapsibleTrigger asChild>\n <div { ...(hostProps as HTMLAttributes<HTMLDivElement>) }>\n <ToolShellStatusIcon\n icon={ icon }\n state={ statusState }\n statusDetail={ detail }\n className={ styles.headerIcon }\n />\n {beforeTitle}\n\n <ToolShellHeaderTitle\n title={ title }\n titleInProgress={ titleInProgress }\n titleInterrupted={ titleInterrupted }\n live={ live }\n stalled={ stalled }\n shimmer={ shimmer !== false }\n failed={ titleFailed }\n truncate={ truncateTitle }\n statusDetail={ detail }\n />\n {children}\n\n <ChevronDown\n className={ cn('chevron', 'next', styles.toolChevron) }\n aria-expanded={ collapsibleState.isExpanded }\n aria-hidden\n />\n </div>\n </CollapsibleTrigger>\n );\n}\n\nexport function ToolShellHeader(props: ToolShellHeaderProps) {\n const shell = use(ToolShellContext);\n const progress = useToolProgress(props.state, props.awaitingUser);\n\n if (shell?.collapsible) {\n return <ToolShellHeaderCollapsible { ...props } progress={ progress } />;\n }\n\n return <ToolShellHeaderStatic { ...props } progress={ progress } />;\n}\n\nexport type ToolShellContentProps = HTMLAttributes<HTMLDivElement>;\n\nfunction ToolShellContentStatic({ className, children, ...props }: ToolShellContentProps) {\n return (\n <div className={ cn(styles.content, className) } data-slot=\"tool-content\" { ...props }>\n {children}\n </div>\n );\n}\n\nfunction ToolShellContentCollapsible({ className, children, ...props }: ToolShellContentProps) {\n return (\n <CollapsibleMotionContent className={ styles.collapse }>\n <div className={ cn(styles.content, className) } data-slot=\"tool-content\" { ...props }>\n {children}\n </div>\n </CollapsibleMotionContent>\n );\n}\n\nexport function ToolShellContent({ className, children, ...props }: ToolShellContentProps) {\n const shell = use(ToolShellContext);\n\n if (shell?.collapsible) {\n return (\n <ToolShellContentCollapsible className={ className } { ...props }>\n {children}\n </ToolShellContentCollapsible>\n );\n }\n\n return (\n <ToolShellContentStatic className={ className } { ...props }>\n {children}\n </ToolShellContentStatic>\n );\n}\n\nexport type ToolShellFooterProps = HTMLAttributes<HTMLDivElement>;\n\nexport function ToolShellFooter({ className, children, ...props }: ToolShellFooterProps) {\n return (\n <div className={ cn(styles.footer, className) } data-slot=\"tool-footer\" { ...props }>\n {children}\n </div>\n );\n}\n"],"names":["ToolShellContext","HEADER_TRIGGER_ATTR","isNestedHeaderInteractive","target","header","interactive","ToolShell","collapsible","defaultOpen","open","onOpenChange","isDisabled","className","children","props","context","useMemo","Collapsible","cn","styles","ToolShellHeaderTitle","title","titleInProgress","titleInterrupted","live","stalled","shimmer","failed","truncate","statusDetail","labelClassName","Text","TOOL_INTERRUPTED_MESSAGE","label","progressLabel","Shimmer","FailedToolTitleTooltip","ToolShellHeaderStatic","state","icon","beforeTitle","truncateTitle","progress","onPress","disclosure","ref","overlay","use","OverlayTriggerStateContext","expanded","pressable","detail","statusState","titleFailed","isFailedToolStatus","row","_Fragment","_jsx","ToolShellStatusIcon","Show","ChevronDown","Pressable","ToolShellHeaderCollapsible","collapsibleState","triggerProps","triggerRef","useCollapsible","headerRef","useRef","triggerOnPress","hostProps","mergeProps","mergeRefs","event","CollapsibleTrigger","ToolShellHeader","shell","useToolProgress","ToolShellContentStatic","ToolShellContentCollapsible","CollapsibleMotionContent","ToolShellContent","ToolShellFooter"],"mappings":"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"}
1
+ {"version":3,"file":"ToolShell.js","sources":["../../../../src/chat/Tool/shell/ToolShell.tsx"],"sourcesContent":["import { Text } from '@reforma/components/Text';\nimport { ChevronDown } from '@reforma/icons/8';\nimport { cn, mergeRefs } from '@reforma/lib';\nimport {\n createContext,\n HTMLAttributes,\n use,\n useMemo,\n useRef,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { mergeProps } from 'react-aria';\nimport { OverlayTriggerStateContext } from 'react-aria-components';\n\nimport {\n Collapsible,\n CollapsibleMotionContent,\n CollapsibleTrigger,\n useCollapsible,\n} from '../../../Collapsible';\nimport { Pressable } from '../../../Pressable';\nimport { Shimmer } from '../../../Shimmer';\nimport { Show } from '../../../Show';\nimport { TOOL_INTERRUPTED_MESSAGE } from '../helpers';\nimport { useToolProgress, type ToolProgressState } from './toolProgress';\nimport styles from './ToolShell.module.css';\nimport { FailedToolTitleTooltip, isFailedToolStatus, ToolShellStatusIcon } from './ToolShellStatusIcon';\n\ntype ToolShellContextValue = {\n collapsible: boolean;\n};\n\nconst ToolShellContext = createContext<ToolShellContextValue | null>(null);\n\nconst HEADER_TRIGGER_ATTR = 'data-tool-shell-header';\n\n/** Clicks on nested controls (e.g. file chips) must not toggle the collapsible header. */\nfunction isNestedHeaderInteractive(target: EventTarget | null, header: HTMLElement): boolean {\n if (!(target instanceof Element)) {\n return false;\n }\n\n const interactive = target.closest(\n 'a[href], input, textarea, select, [role=\"link\"]'\n ) ?? target.closest('button, [role=\"button\"]');\n\n if (!interactive || !header.contains(interactive)) {\n return false;\n }\n\n return !interactive.hasAttribute(HEADER_TRIGGER_ATTR);\n}\n\n/** Compact tool row chrome: summary row + optional body. Set `collapsible` on the root to enable disclosure. */\nexport type ToolShellProps = HTMLAttributes<HTMLDivElement> & {\n /** When true, root is a collapsible and the header is the trigger. Body still mounts via {@link ToolShellContent}. */\n collapsible?: boolean;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n};\n\nexport function ToolShell({\n collapsible = false,\n defaultOpen = false,\n open,\n onOpenChange,\n isDisabled,\n className,\n children,\n ...props\n}: ToolShellProps) {\n const context = useMemo(() => ({ collapsible }), [collapsible]);\n\n if (collapsible) {\n return (\n <ToolShellContext value={ context }>\n <Collapsible\n className={ cn(styles.root, className) }\n data-slot=\"tool\"\n defaultOpen={ defaultOpen }\n open={ open }\n onOpenChange={ onOpenChange }\n isDisabled={ isDisabled }\n { ...props }\n >\n {children}\n </Collapsible>\n </ToolShellContext>\n );\n }\n\n return (\n <ToolShellContext value={ context }>\n <div\n className={ cn(styles.root, className) }\n data-slot=\"tool\"\n { ...props }\n >\n {children}\n </div>\n </ToolShellContext>\n );\n}\n\nexport interface ToolShellHeaderProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'title' | 'type'> {\n state: string;\n /** Idle label (secondary text). Shimmers with {@link titleInProgress} while the tool runs. */\n title?: string;\n /** In-progress label; defaults to `title` when omitted. */\n titleInProgress?: string;\n /** Override interrupted copy when the run ended mid-tool (defaults to {@link TOOL_INTERRUPTED_MESSAGE}). */\n titleInterrupted?: string;\n /** When false, the title stays static while the tool runs (default true). */\n shimmer?: boolean;\n /** Optional leading icon before the title (e.g. Agent). */\n icon?: ReactNode;\n /** Sits between the icon and the title. */\n beforeTitle?: ReactNode;\n /** Ellipsize a long title in the row. */\n truncateTitle?: boolean;\n /** Error or denial detail; shown in a tooltip on the struck title. */\n statusDetail?: string | undefined;\n /**\n * Strike the idle title. Defaults to the same signal as the muted status icon\n * (SDK error/denial, or a `statusDetail` logical failure).\n */\n failed?: boolean;\n /** Tool is waiting on the user (e.g. AskUserQuestion) — do not treat idle non-terminal as stalled. */\n awaitingUser?: boolean;\n /**\n * Whole row is pressable and shows the hover chevron. `onPress` runs a custom\n * action (subagent). Without it, a parent `PopoverTrigger` supplies the press\n * (file list). Ignored when the shell is collapsible.\n */\n onPress?: () => void;\n /** Show the chevron and accept press from context when `onPress` is omitted. */\n disclosure?: boolean;\n ref?: Ref<HTMLDivElement>;\n children?: ReactNode;\n}\n\ntype ToolShellHeaderTitleProps = {\n title?: string;\n titleInProgress?: string;\n titleInterrupted?: string;\n live: boolean;\n stalled: boolean;\n shimmer: boolean;\n failed: boolean;\n truncate?: boolean;\n statusDetail?: string;\n};\n\nfunction ToolShellHeaderTitle({\n title,\n titleInProgress,\n titleInterrupted,\n live,\n stalled,\n shimmer,\n failed,\n truncate,\n statusDetail,\n}: ToolShellHeaderTitleProps) {\n const labelClassName = cn(\n styles.headerLabel,\n truncate && styles.headerLabelTruncate,\n 'whitespace-nowrap'\n );\n\n if (stalled) {\n return (\n <Text color=\"danger\" className={ labelClassName }>\n {titleInterrupted ?? TOOL_INTERRUPTED_MESSAGE}\n </Text>\n );\n }\n\n const label = title ?? titleInProgress;\n\n if (!label) {\n return null;\n }\n\n const progressLabel = titleInProgress ?? label;\n\n if (live && shimmer) {\n return (\n <Shimmer as=\"span\" className={ labelClassName } duration={ 1 }>\n {progressLabel}\n </Shimmer>\n );\n }\n\n if (failed && !live) {\n const struck = (\n <Text\n decoration=\"line-through\"\n color=\"secondary\"\n className={ labelClassName }\n aria-label={ `${ label } failed` }\n >\n {label}\n </Text>\n );\n\n if (!statusDetail?.trim()) {\n return struck;\n }\n\n return (\n <FailedToolTitleTooltip statusDetail={ statusDetail }>\n {struck}\n </FailedToolTitleTooltip>\n );\n }\n\n return (\n <Text className={ labelClassName }>\n {live ? progressLabel : label}\n </Text>\n );\n}\n\ntype ToolShellHeaderViewProps = ToolShellHeaderProps & {\n progress: ToolProgressState;\n};\n\nfunction ToolShellHeaderStatic({\n state,\n title,\n titleInProgress,\n titleInterrupted,\n icon,\n beforeTitle,\n children,\n statusDetail,\n failed,\n truncateTitle,\n className,\n progress,\n shimmer,\n onPress,\n disclosure,\n ref,\n}: ToolShellHeaderViewProps) {\n const overlay = use(OverlayTriggerStateContext);\n const expanded = overlay?.isOpen === true;\n const pressable = onPress != null || disclosure === true;\n const { live, stalled } = progress;\n const detail = stalled\n ? (statusDetail?.trim() || TOOL_INTERRUPTED_MESSAGE)\n : statusDetail;\n const statusState = stalled ? 'output-error' : state;\n const titleFailed = failed ?? isFailedToolStatus(statusState, detail);\n const row = (\n <>\n <ToolShellStatusIcon\n icon={ icon }\n state={ statusState }\n statusDetail={ detail }\n className={ styles.headerIcon }\n />\n {beforeTitle}\n\n <ToolShellHeaderTitle\n title={ title }\n titleInProgress={ titleInProgress }\n titleInterrupted={ titleInterrupted }\n live={ live }\n stalled={ stalled }\n shimmer={ shimmer !== false }\n failed={ titleFailed }\n truncate={ truncateTitle }\n statusDetail={ detail }\n />\n {children}\n <Show when={ pressable }>\n <ChevronDown\n className={ cn('chevron', 'next', styles.toolChevron) }\n aria-expanded={ overlay ? expanded : undefined }\n aria-hidden\n />\n </Show>\n </>\n );\n\n if (pressable) {\n return (\n <Pressable ref={ ref } { ...(onPress ? { onPress } : {}) }>\n <div\n role=\"button\"\n className={ cn(styles.headerRow, styles.headerTrigger, className) }\n aria-busy={ live }\n aria-expanded={ overlay ? expanded : undefined }\n >\n {row}\n </div>\n </Pressable>\n );\n }\n\n return (\n <div\n className={ cn(styles.headerRow, styles.headerNonInteractive, className) }\n aria-busy={ live }\n >\n {row}\n </div>\n );\n}\n\nfunction ToolShellHeaderCollapsible({\n state,\n title,\n titleInProgress,\n titleInterrupted,\n icon,\n beforeTitle,\n children,\n statusDetail,\n failed,\n truncateTitle,\n className,\n progress,\n shimmer,\n}: ToolShellHeaderViewProps) {\n const { state: collapsibleState, triggerProps, triggerRef } = useCollapsible();\n const headerRef = useRef<HTMLDivElement>(null);\n const { live, stalled } = progress;\n const detail = stalled\n ? (statusDetail?.trim() || TOOL_INTERRUPTED_MESSAGE)\n : statusDetail;\n const statusState = stalled ? 'output-error' : state;\n const titleFailed = failed ?? isFailedToolStatus(statusState, detail);\n\n const triggerOnPress = (triggerProps as { onPress?: (event: { target: EventTarget }) => void }).onPress;\n\n // eslint-disable-next-line react-hooks/refs -- mergeRefs composes; it does not read `.current`\n const hostProps = mergeProps(triggerProps, {\n [HEADER_TRIGGER_ATTR]: '',\n className: cn(styles.headerRow, styles.headerTrigger, className),\n // eslint-disable-next-line react-hooks/refs -- mergeRefs composes; it does not read `.current`\n ref: mergeRefs(triggerRef, headerRef),\n 'aria-busy': live,\n 'aria-expanded': collapsibleState.isExpanded,\n onPress: (event: { target: EventTarget }) => {\n const header = headerRef.current;\n\n if (header && isNestedHeaderInteractive(event.target, header)) {\n return;\n }\n\n triggerOnPress?.(event);\n },\n });\n\n return (\n <CollapsibleTrigger asChild>\n <div { ...(hostProps as HTMLAttributes<HTMLDivElement>) }>\n <ToolShellStatusIcon\n icon={ icon }\n state={ statusState }\n statusDetail={ detail }\n className={ styles.headerIcon }\n />\n {beforeTitle}\n\n <ToolShellHeaderTitle\n title={ title }\n titleInProgress={ titleInProgress }\n titleInterrupted={ titleInterrupted }\n live={ live }\n stalled={ stalled }\n shimmer={ shimmer !== false }\n failed={ titleFailed }\n truncate={ truncateTitle }\n statusDetail={ detail }\n />\n {children}\n\n <ChevronDown\n className={ cn('chevron', 'next', styles.toolChevron) }\n aria-expanded={ collapsibleState.isExpanded }\n aria-hidden\n />\n </div>\n </CollapsibleTrigger>\n );\n}\n\nexport function ToolShellHeader(props: ToolShellHeaderProps) {\n const shell = use(ToolShellContext);\n const progress = useToolProgress(props.state, props.awaitingUser);\n\n if (shell?.collapsible) {\n return <ToolShellHeaderCollapsible { ...props } progress={ progress } />;\n }\n\n return <ToolShellHeaderStatic { ...props } progress={ progress } />;\n}\n\nexport type ToolShellContentProps = HTMLAttributes<HTMLDivElement>;\n\nfunction ToolShellContentStatic({ className, children, ...props }: ToolShellContentProps) {\n return (\n <div className={ cn(styles.content, className) } data-slot=\"tool-content\" { ...props }>\n {children}\n </div>\n );\n}\n\nfunction ToolShellContentCollapsible({ className, children, ...props }: ToolShellContentProps) {\n return (\n <CollapsibleMotionContent className={ styles.collapse }>\n <div className={ cn(styles.content, className) } data-slot=\"tool-content\" { ...props }>\n {children}\n </div>\n </CollapsibleMotionContent>\n );\n}\n\nexport function ToolShellContent({ className, children, ...props }: ToolShellContentProps) {\n const shell = use(ToolShellContext);\n\n if (shell?.collapsible) {\n return (\n <ToolShellContentCollapsible className={ className } { ...props }>\n {children}\n </ToolShellContentCollapsible>\n );\n }\n\n return (\n <ToolShellContentStatic className={ className } { ...props }>\n {children}\n </ToolShellContentStatic>\n );\n}\n\nexport type ToolShellFooterProps = HTMLAttributes<HTMLDivElement>;\n\nexport function ToolShellFooter({ className, children, ...props }: ToolShellFooterProps) {\n return (\n <div className={ cn(styles.footer, className) } data-slot=\"tool-footer\" { ...props }>\n {children}\n </div>\n );\n}\n"],"names":["ToolShellContext","HEADER_TRIGGER_ATTR","isNestedHeaderInteractive","target","header","interactive","ToolShell","collapsible","defaultOpen","open","onOpenChange","isDisabled","className","children","props","context","useMemo","Collapsible","cn","styles","ToolShellHeaderTitle","title","titleInProgress","titleInterrupted","live","stalled","shimmer","failed","truncate","statusDetail","labelClassName","Text","TOOL_INTERRUPTED_MESSAGE","label","progressLabel","Shimmer","struck","FailedToolTitleTooltip","ToolShellHeaderStatic","state","icon","beforeTitle","truncateTitle","progress","onPress","disclosure","ref","overlay","use","OverlayTriggerStateContext","expanded","pressable","detail","statusState","titleFailed","isFailedToolStatus","row","_Fragment","_jsx","ToolShellStatusIcon","Show","ChevronDown","Pressable","ToolShellHeaderCollapsible","collapsibleState","triggerProps","triggerRef","useCollapsible","headerRef","useRef","triggerOnPress","hostProps","mergeProps","mergeRefs","event","CollapsibleTrigger","ToolShellHeader","shell","useToolProgress","ToolShellContentStatic","ToolShellContentCollapsible","CollapsibleMotionContent","ToolShellContent","ToolShellFooter"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,10 +16,10 @@ export * from './Collapsible';
16
16
  export * from './ColorArea';
17
17
  export * from './ColorInput';
18
18
  export * from './ColorSlider';
19
+ export * from './Composer';
19
20
  export * from './ConfirmButton';
20
21
  export * from './ControlGroup';
21
22
  export * from './CopyButton';
22
- export * from './CreateComposer';
23
23
  export * from './FileDropOverlay';
24
24
  export * from './FileUploadZone';
25
25
  export * from './For';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvE,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvE,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}