@pstdio/ui 0.25.0 → 0.26.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.
Files changed (99) hide show
  1. package/README.md +8 -1
  2. package/dist/{MermaidComponent-BVdDqDRU.js → MermaidComponent-X__B6qib.js} +3 -3
  3. package/dist/{MermaidComponent-BVdDqDRU.js.map → MermaidComponent-X__B6qib.js.map} +1 -1
  4. package/dist/activity-timeline-BynMjXSB.js +283 -0
  5. package/dist/activity-timeline-BynMjXSB.js.map +1 -0
  6. package/dist/alert-ubcrW24X.js +33 -0
  7. package/dist/alert-ubcrW24X.js.map +1 -0
  8. package/dist/browser-storage-BinyFNJX.js +40 -0
  9. package/dist/browser-storage-BinyFNJX.js.map +1 -0
  10. package/dist/chat-ui.js +1515 -1429
  11. package/dist/chat-ui.js.map +1 -1
  12. package/dist/components/activity/index.d.ts +1 -3
  13. package/dist/components/chat-ui/components/chat-history-story.d.ts +14 -0
  14. package/dist/components/chat-ui/components/chat-input-history.d.ts +6 -0
  15. package/dist/components/chat-ui/components/chat-input.d.ts +2 -0
  16. package/dist/components/chat-ui/components/chat-panel-composer.d.ts +49 -0
  17. package/dist/components/chat-ui/components/use-chat-input-history.d.ts +16 -0
  18. package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +1 -1
  19. package/dist/components/chat-ui/tool-rendering/shared.d.ts +1 -1
  20. package/dist/components/diff-viewer/code-editor.d.ts +2 -0
  21. package/dist/components/rich-text/index.d.ts +2 -0
  22. package/dist/components/rich-text/markdown-editor/markdown-editor-scrolling.play.d.ts +4 -0
  23. package/dist/components/rich-text/prompt-input/plugins/KeyboardShortcutPlugin.d.ts +3 -1
  24. package/dist/components/rich-text/prompt-input/plugins/keyboard-shortcuts.d.ts +2 -0
  25. package/dist/components/rich-text/prompt-input/prompt-input.d.ts +2 -0
  26. package/dist/components/{activity → rich-text/resource-activity-feed}/resource-activity-feed.d.ts +1 -1
  27. package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/should-show-floating-toolbar.d.ts +1 -0
  28. package/dist/data-table.js +6 -6
  29. package/dist/diff.js +524 -522
  30. package/dist/diff.js.map +1 -1
  31. package/dist/{edit-mode-data-table-B8UpWb7i.js → edit-mode-data-table-Nfmfi7bz.js} +23 -22
  32. package/dist/{edit-mode-data-table-B8UpWb7i.js.map → edit-mode-data-table-Nfmfi7bz.js.map} +1 -1
  33. package/dist/index.d.ts +2 -3
  34. package/dist/index.js +1766 -2232
  35. package/dist/index.js.map +1 -1
  36. package/dist/{kanban-renderer-toolbar-DzY6THJY.js → kanban-renderer-toolbar-Buek4icz.js} +34 -33
  37. package/dist/{kanban-renderer-toolbar-DzY6THJY.js.map → kanban-renderer-toolbar-Buek4icz.js.map} +1 -1
  38. package/dist/kanban-renderer.js +31 -30
  39. package/dist/kanban-renderer.js.map +1 -1
  40. package/dist/lazy-markdown-editor-PzIBc9-l.js +42 -0
  41. package/dist/lazy-markdown-editor-PzIBc9-l.js.map +1 -0
  42. package/dist/{list-row-BDoV_iMV.js → list-row-DHzRa9-O.js} +2 -2
  43. package/dist/{list-row-BDoV_iMV.js.map → list-row-DHzRa9-O.js.map} +1 -1
  44. package/dist/{markdown-gNucAjnF.js → markdown-BCfPxNpb.js} +323 -303
  45. package/dist/markdown-BCfPxNpb.js.map +1 -0
  46. package/dist/markdown-editor-CsJ4KNGu.js +1034 -0
  47. package/dist/markdown-editor-CsJ4KNGu.js.map +1 -0
  48. package/dist/{mermaid-renderer-CVnuKs-A.js → mermaid-renderer-D0YP0FmJ.js} +3 -3
  49. package/dist/{mermaid-renderer-CVnuKs-A.js.map → mermaid-renderer-D0YP0FmJ.js.map} +1 -1
  50. package/dist/mermaid.js +1 -1
  51. package/dist/{param-editor-CTx3mDxQ.js → param-editor-CFM2Nf3l.js} +2 -2
  52. package/dist/{param-editor-CTx3mDxQ.js.map → param-editor-CFM2Nf3l.js.map} +1 -1
  53. package/dist/param-editor-field-Bj-AGUY6.js +1728 -0
  54. package/dist/param-editor-field-Bj-AGUY6.js.map +1 -0
  55. package/dist/param-editor.d.ts +2 -0
  56. package/dist/param-editor.js +47 -0
  57. package/dist/param-editor.js.map +1 -0
  58. package/dist/prism-n5gcERyD.js +202 -0
  59. package/dist/prism-n5gcERyD.js.map +1 -0
  60. package/dist/radio-BfjibByI.js +51 -0
  61. package/dist/radio-BfjibByI.js.map +1 -0
  62. package/dist/rich-message-q6Y6QJOq.js +633 -0
  63. package/dist/rich-message-q6Y6QJOq.js.map +1 -0
  64. package/dist/rich-text.js +342 -178
  65. package/dist/rich-text.js.map +1 -1
  66. package/dist/scroll-area-BMbg1WcD.js +91 -0
  67. package/dist/scroll-area-BMbg1WcD.js.map +1 -0
  68. package/dist/slider-DBHjdxsU.js +1092 -0
  69. package/dist/slider-DBHjdxsU.js.map +1 -0
  70. package/dist/style.css +1 -1
  71. package/dist/terminal.js +96 -93
  72. package/dist/terminal.js.map +1 -1
  73. package/dist/theme/recipes/timeline.d.ts +9 -0
  74. package/dist/{theme-Dc7hVvMC.js → theme-AzJH4Om3.js} +10 -1
  75. package/dist/theme-AzJH4Om3.js.map +1 -0
  76. package/dist/{theme-preference-Bpobguh4.js → theme-preference-DxGW1qg-.js} +2 -2
  77. package/dist/{theme-preference-Bpobguh4.js.map → theme-preference-DxGW1qg-.js.map} +1 -1
  78. package/dist/theme.js +1 -1
  79. package/dist/{tree-list-CZvcg3_6.js → tree-list-CPjbGTvs.js} +2 -2
  80. package/dist/{tree-list-CZvcg3_6.js.map → tree-list-CPjbGTvs.js.map} +1 -1
  81. package/dist/{workspace-badge-BR_GgsAG.js → workspace-badge-CuOcmnZc.js} +2 -2
  82. package/dist/{workspace-badge-BR_GgsAG.js.map → workspace-badge-CuOcmnZc.js.map} +1 -1
  83. package/package.json +7 -2
  84. package/dist/browser-storage-DPtOQJx0.js +0 -127
  85. package/dist/browser-storage-DPtOQJx0.js.map +0 -1
  86. package/dist/lazy-markdown-editor-ClZPZuaU.js +0 -235
  87. package/dist/lazy-markdown-editor-ClZPZuaU.js.map +0 -1
  88. package/dist/markdown-editor-CAVqJ9yR.js +0 -1019
  89. package/dist/markdown-editor-CAVqJ9yR.js.map +0 -1
  90. package/dist/markdown-gNucAjnF.js.map +0 -1
  91. package/dist/param-editor-field-DteDEyeU.js +0 -2810
  92. package/dist/param-editor-field-DteDEyeU.js.map +0 -1
  93. package/dist/prompt-input-DNpRL5tI.js +0 -564
  94. package/dist/prompt-input-DNpRL5tI.js.map +0 -1
  95. package/dist/radio-cLMEBBZk.js +0 -76
  96. package/dist/radio-cLMEBBZk.js.map +0 -1
  97. package/dist/rich-message-CuPiKxKX.js +0 -78
  98. package/dist/rich-message-CuPiKxKX.js.map +0 -1
  99. package/dist/theme-Dc7hVvMC.js.map +0 -1
@@ -2,7 +2,7 @@ import { jsx as d, jsxs as W } from "react/jsx-runtime";
2
2
  import { c as m } from "react/compiler-runtime";
3
3
  import { Icon as L, Badge as B, Spinner as E, Text as v, HStack as D, Box as K } from "@chakra-ui/react";
4
4
  import { LoaderCircle as O, CircleCheck as M, CircleAlert as R, CircleStop as X, CirclePause as q, ClockAlert as j, CircleDot as G, CircleDashed as H, ChevronDown as U, GitCommitIcon as F, GitBranchIcon as J } from "lucide-react";
5
- import { T as $ } from "./browser-storage-DPtOQJx0.js";
5
+ import { T as $ } from "./scroll-area-BMbg1WcD.js";
6
6
  const me = (t, e, r = !0) => {
7
7
  !r || t.defaultPrevented || t.key === "Enter" && (!t.ctrlKey && !t.metaKey || t.shiftKey || t.altKey || (t.preventDefault(), t.stopPropagation(), e()));
8
8
  }, he = ["in_progress", "awaiting_input", "queued", "completed", "failed", "cancelled", "disconnected"], N = (t) => t === "in_progress" ? O : t === "completed" ? M : t === "failed" ? R : t === "cancelled" ? X : t === "disconnected" ? q : t === "queued" ? j : t === "awaiting_input" ? G : H, Q = (t) => t === "in_progress" ? "fg.info" : t === "completed" ? "fg.success" : t === "failed" ? "fg.error" : t === "cancelled" || t === "disconnected" ? "fg.warning" : t === "queued" ? "fg.info" : t === "awaiting_input" ? "fg.warning" : "fg.muted", V = (t) => {
@@ -172,4 +172,4 @@ export {
172
172
  Q as r,
173
173
  he as s
174
174
  };
175
- //# sourceMappingURL=workspace-badge-BR_GgsAG.js.map
175
+ //# sourceMappingURL=workspace-badge-CuOcmnZc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-badge-BR_GgsAG.js","sources":["../src/components/overlays/dialog-accept-shortcut.ts","../src/components/primitives/session-indicator.tsx","../src/components/primitives/workspace-badge.tsx"],"sourcesContent":["interface DialogAcceptShortcutEvent {\n key: string;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n defaultPrevented: boolean;\n preventDefault: () => void;\n stopPropagation: () => void;\n}\n\nexport const handleDialogAcceptShortcut = (event: DialogAcceptShortcutEvent, accept: () => void, enabled = true) => {\n if (!enabled || event.defaultPrevented) return;\n if (event.key !== \"Enter\") return;\n if ((!event.ctrlKey && !event.metaKey) || event.shiftKey || event.altKey) return;\n\n event.preventDefault();\n event.stopPropagation();\n accept();\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"],"names":["handleDialogAcceptShortcut","event","accept","enabled","defaultPrevented","key","ctrlKey","metaKey","shiftKey","altKey","preventDefault","stopPropagation","sessionCompletionStatuses","resolveSessionIndicatorIcon","status","LoaderCircle","CircleCheck","CircleAlert","CircleStop","CirclePause","ClockAlert","CircleDot","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","props","$","_c","boxSize","t0","ariaLabel","t1","cursor","onClick","undefined","t2","t3","t4","jsx","Icon","ATTEMPT_STATUS_COLOR_ALIASES","amber","CHAKRA_COLOR_PALETTES","Set","workspaceBadgeSurfaceProps","bg","_light","_dark","color","_hover","resolveWorkspaceIcon","workspaceType","GitCommitIcon","GitBranchIcon","resolveAttemptStatusColor","startsWith","resolvedColor","has","buildAttemptStatusTooltip","attemptStatus","description","name","handleIconClick","handleBadgeClick","LeadingSessionIndicator","sessionStatus","onSessionIndicatorClick","sessionTooltip","Tooltip","WorkspaceTypeIndicator","initializing","label","shorthand","WorkspaceTypeIcon","displayLabel","Spinner","Text","t5","jsxs","HStack","WorkspaceAttemptStatusIndicator","Box","WorkspaceDiffTotals","diffAdditions","diffDeletions","WorkspaceDropdownTrigger","hasMultipleWorkspaces","onDropdownClick","ChevronDown","WorkspaceBadge","showLeadingSessionIndicator","t6","t7","t8","t9","t10","Badge"],"mappings":"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"}
1
+ {"version":3,"file":"workspace-badge-CuOcmnZc.js","sources":["../src/components/overlays/dialog-accept-shortcut.ts","../src/components/primitives/session-indicator.tsx","../src/components/primitives/workspace-badge.tsx"],"sourcesContent":["interface DialogAcceptShortcutEvent {\n key: string;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n defaultPrevented: boolean;\n preventDefault: () => void;\n stopPropagation: () => void;\n}\n\nexport const handleDialogAcceptShortcut = (event: DialogAcceptShortcutEvent, accept: () => void, enabled = true) => {\n if (!enabled || event.defaultPrevented) return;\n if (event.key !== \"Enter\") return;\n if ((!event.ctrlKey && !event.metaKey) || event.shiftKey || event.altKey) return;\n\n event.preventDefault();\n event.stopPropagation();\n accept();\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"],"names":["handleDialogAcceptShortcut","event","accept","enabled","defaultPrevented","key","ctrlKey","metaKey","shiftKey","altKey","preventDefault","stopPropagation","sessionCompletionStatuses","resolveSessionIndicatorIcon","status","LoaderCircle","CircleCheck","CircleAlert","CircleStop","CirclePause","ClockAlert","CircleDot","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","props","$","_c","boxSize","t0","ariaLabel","t1","cursor","onClick","undefined","t2","t3","t4","jsx","Icon","ATTEMPT_STATUS_COLOR_ALIASES","amber","CHAKRA_COLOR_PALETTES","Set","workspaceBadgeSurfaceProps","bg","_light","_dark","color","_hover","resolveWorkspaceIcon","workspaceType","GitCommitIcon","GitBranchIcon","resolveAttemptStatusColor","startsWith","resolvedColor","has","buildAttemptStatusTooltip","attemptStatus","description","name","handleIconClick","handleBadgeClick","LeadingSessionIndicator","sessionStatus","onSessionIndicatorClick","sessionTooltip","Tooltip","WorkspaceTypeIndicator","initializing","label","shorthand","WorkspaceTypeIcon","displayLabel","Spinner","Text","t5","jsxs","HStack","WorkspaceAttemptStatusIndicator","Box","WorkspaceDiffTotals","diffAdditions","diffDeletions","WorkspaceDropdownTrigger","hasMultipleWorkspaces","onDropdownClick","ChevronDown","WorkspaceBadge","showLeadingSessionIndicator","t6","t7","t8","t9","t10","Badge"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pstdio/ui",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/pufflyai/prompt-studio"
@@ -38,6 +38,10 @@
38
38
  "import": "./dist/kanban-renderer.js",
39
39
  "types": "./dist/components/kanban-renderer/index.d.ts"
40
40
  },
41
+ "./param-editor": {
42
+ "import": "./dist/param-editor.js",
43
+ "types": "./dist/components/param-editor/index.d.ts"
44
+ },
41
45
  "./data-table": {
42
46
  "import": "./dist/data-table.js",
43
47
  "types": "./dist/components/data-table/index.d.ts"
@@ -79,11 +83,12 @@
79
83
  "@lexical/utils": "^0.40.0",
80
84
  "@lexical/yjs": "^0.40.0",
81
85
  "@monaco-editor/react": "^4.7.0",
82
- "@pstdio/sdk": "0.24.1",
86
+ "@pstdio/sdk": "0.25.0",
83
87
  "@tanstack/react-table": "^8.21.3",
84
88
  "@tanstack/react-virtual": "^3.13.19",
85
89
  "@types/mdast": "^4.0.4",
86
90
  "@xterm/addon-fit": "^0.10.0",
91
+ "@xterm/addon-web-links": "^0.11.0",
87
92
  "@xterm/xterm": "^5.5.0",
88
93
  "diff": "^8.0.3",
89
94
  "dompurify": "^3.4.13",
@@ -1,127 +0,0 @@
1
- import { jsx as S, jsxs as j } from "react/jsx-runtime";
2
- import { c as D } from "react/compiler-runtime";
3
- import { Tooltip as P, Portal as E, ScrollArea as R } from "@chakra-ui/react";
4
- import * as V from "react";
5
- const F = V.forwardRef(function(e, p) {
6
- const t = D(22);
7
- let o, r, n, d, s, a, u;
8
- t[0] !== e ? ({
9
- children: o,
10
- disabled: d,
11
- portalled: u,
12
- content: r,
13
- contentProps: n,
14
- portalRef: s,
15
- ...a
16
- } = e, t[0] = e, t[1] = o, t[2] = r, t[3] = n, t[4] = d, t[5] = s, t[6] = a, t[7] = u) : (o = t[1], r = t[2], n = t[3], d = t[4], s = t[5], a = t[6], u = t[7]);
17
- const g = u === void 0 ? !0 : u;
18
- if (d || _(r))
19
- return o;
20
- let i;
21
- t[8] !== o ? (i = /* @__PURE__ */ S(P.Trigger, { asChild: !0, children: o }), t[8] = o, t[9] = i) : i = t[9];
22
- const h = !g;
23
- let c;
24
- t[10] !== r || t[11] !== n || t[12] !== p ? (c = /* @__PURE__ */ S(P.Positioner, { children: /* @__PURE__ */ S(P.Content, { ref: p, ...n, children: r }) }), t[10] = r, t[11] = n, t[12] = p, t[13] = c) : c = t[13];
25
- let m;
26
- t[14] !== s || t[15] !== h || t[16] !== c ? (m = /* @__PURE__ */ S(E, { disabled: h, container: s, children: c }), t[14] = s, t[15] = h, t[16] = c, t[17] = m) : m = t[17];
27
- let f;
28
- return t[18] !== a || t[19] !== i || t[20] !== m ? (f = /* @__PURE__ */ j(P.Root, { openDelay: 100, closeDelay: 100, ...a, children: [
29
- i,
30
- m
31
- ] }), t[18] = a, t[19] = i, t[20] = m, t[21] = f) : f = t[21], f;
32
- });
33
- function H(l) {
34
- return typeof l == "string" ? l.trim().length === 0 : !1;
35
- }
36
- function _(l) {
37
- if (l == null || l === !1)
38
- return !0;
39
- const e = V.Children.toArray(l);
40
- return e.length === 0 ? !0 : e.every(H);
41
- }
42
- const G = V.forwardRef(function(e, p) {
43
- const t = D(40);
44
- let o, r, n, d, s, a, u, g, v, i, h, c;
45
- t[0] !== e ? ({
46
- children: o,
47
- viewportRef: c,
48
- contentRef: n,
49
- viewportProps: h,
50
- contentProps: r,
51
- verticalScrollbarProps: i,
52
- horizontalScrollbarProps: d,
53
- showVerticalScrollbar: a,
54
- showHorizontalScrollbar: u,
55
- showCorner: g,
56
- size: v,
57
- ...s
58
- } = e, t[0] = e, t[1] = o, t[2] = r, t[3] = n, t[4] = d, t[5] = s, t[6] = a, t[7] = u, t[8] = g, t[9] = v, t[10] = i, t[11] = h, t[12] = c) : (o = t[1], r = t[2], n = t[3], d = t[4], s = t[5], a = t[6], u = t[7], g = t[8], v = t[9], i = t[10], h = t[11], c = t[12]);
59
- const m = a === void 0 ? !0 : a, f = u === void 0 ? !1 : u, T = g === void 0 ? m && f : g, A = v === void 0 ? "xs" : v;
60
- let x;
61
- t[13] !== r || t[14] !== f ? (x = f ? r : {
62
- ...r,
63
- style: {
64
- minWidth: 0,
65
- ...r?.style
66
- }
67
- }, t[13] = r, t[14] = f, t[15] = x) : x = t[15];
68
- const $ = x;
69
- let b;
70
- t[16] !== o || t[17] !== n || t[18] !== $ ? (b = /* @__PURE__ */ S(R.Content, { ...$, ref: n, children: o }), t[16] = o, t[17] = n, t[18] = $, t[19] = b) : b = t[19];
71
- let y;
72
- t[20] !== b || t[21] !== h || t[22] !== c ? (y = /* @__PURE__ */ S(R.Viewport, { ...h, ref: c, children: b }), t[20] = b, t[21] = h, t[22] = c, t[23] = y) : y = t[23];
73
- let w;
74
- t[24] !== m || t[25] !== i ? (w = m ? /* @__PURE__ */ S(R.Scrollbar, { zIndex: "2", ...i, borderRadius: "xs" }) : null, t[24] = m, t[25] = i, t[26] = w) : w = t[26];
75
- let I;
76
- t[27] !== d || t[28] !== f ? (I = f ? /* @__PURE__ */ S(R.Scrollbar, { orientation: "horizontal", zIndex: "2", ...d, borderRadius: "xs" }) : null, t[27] = d, t[28] = f, t[29] = I) : I = t[29];
77
- let C;
78
- t[30] !== T ? (C = T ? /* @__PURE__ */ S(R.Corner, { zIndex: "2" }) : null, t[30] = T, t[31] = C) : C = t[31];
79
- let z;
80
- return t[32] !== p || t[33] !== s || t[34] !== A || t[35] !== y || t[36] !== w || t[37] !== I || t[38] !== C ? (z = /* @__PURE__ */ j(R.Root, { ref: p, size: A, ...s, children: [
81
- y,
82
- w,
83
- I,
84
- C
85
- ] }), t[32] = p, t[33] = s, t[34] = A, t[35] = y, t[36] = w, t[37] = I, t[38] = C, t[39] = z) : z = t[39], z;
86
- }), B = {
87
- getItem: () => null,
88
- removeItem: () => {
89
- },
90
- setItem: () => {
91
- }
92
- }, L = () => {
93
- try {
94
- return globalThis.localStorage;
95
- } catch {
96
- return;
97
- }
98
- }, J = () => {
99
- const l = L();
100
- return l ? {
101
- getItem(e) {
102
- try {
103
- return l.getItem(e);
104
- } catch {
105
- return null;
106
- }
107
- },
108
- removeItem(e) {
109
- try {
110
- l.removeItem(e);
111
- } catch {
112
- }
113
- },
114
- setItem(e, p) {
115
- try {
116
- l.setItem(e, p);
117
- } catch {
118
- }
119
- }
120
- } : B;
121
- };
122
- export {
123
- G as S,
124
- F as T,
125
- J as c
126
- };
127
- //# sourceMappingURL=browser-storage-DPtOQJx0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-storage-DPtOQJx0.js","sources":["../src/components/primitives/tooltip.tsx","../src/components/primitives/scroll-area.tsx","../src/utils/browser-storage.ts"],"sourcesContent":["import { Tooltip as ChakraTooltip, Portal } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface TooltipProps extends ChakraTooltip.RootProps {\n children?: React.ReactElement;\n portalled?: boolean;\n portalRef?: React.RefObject<HTMLElement>;\n content: React.ReactNode;\n contentProps?: ChakraTooltip.ContentProps;\n disabled?: boolean;\n}\n\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(function Tooltip(props, ref) {\n const { children, disabled, portalled = true, content, contentProps, portalRef, ...rest } = props;\n\n const isEmptyContent = (node: React.ReactNode): boolean => {\n if (node === null || node === undefined || node === false) return true;\n const arr = React.Children.toArray(node);\n if (arr.length === 0) return true;\n return arr.every((child) => (typeof child === \"string\" ? child.trim().length === 0 : false));\n };\n\n if (disabled || isEmptyContent(content)) return children;\n\n return (\n <ChakraTooltip.Root openDelay={100} closeDelay={100} {...rest}>\n <ChakraTooltip.Trigger asChild>{children}</ChakraTooltip.Trigger>\n <Portal disabled={!portalled} container={portalRef}>\n <ChakraTooltip.Positioner>\n <ChakraTooltip.Content ref={ref} {...contentProps}>\n {content}\n </ChakraTooltip.Content>\n </ChakraTooltip.Positioner>\n </Portal>\n </ChakraTooltip.Root>\n );\n});\n","import { ScrollArea as ChakraScrollArea } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\ntype VerticalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\ntype HorizontalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\n\nexport interface ScrollAreaProps extends ChakraScrollArea.RootProps {\n viewportRef?: React.Ref<HTMLDivElement>;\n contentRef?: React.Ref<HTMLDivElement>;\n viewportProps?: ChakraScrollArea.ViewportProps;\n contentProps?: ChakraScrollArea.ContentProps;\n verticalScrollbarProps?: VerticalScrollbarProps;\n horizontalScrollbarProps?: HorizontalScrollbarProps;\n showVerticalScrollbar?: boolean;\n showHorizontalScrollbar?: boolean;\n showCorner?: boolean;\n}\n\nexport const ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(function ScrollArea(props, ref) {\n const {\n children,\n viewportRef,\n contentRef,\n viewportProps,\n contentProps,\n verticalScrollbarProps,\n horizontalScrollbarProps,\n showVerticalScrollbar = true,\n showHorizontalScrollbar = false,\n showCorner = showVerticalScrollbar && showHorizontalScrollbar,\n size = \"xs\",\n ...rest\n } = props;\n\n const mergedContentProps = showHorizontalScrollbar\n ? contentProps\n : { ...contentProps, style: { minWidth: 0, ...contentProps?.style } };\n\n return (\n <ChakraScrollArea.Root ref={ref} size={size} {...rest}>\n <ChakraScrollArea.Viewport {...viewportProps} ref={viewportRef}>\n <ChakraScrollArea.Content {...mergedContentProps} ref={contentRef}>\n {children}\n </ChakraScrollArea.Content>\n </ChakraScrollArea.Viewport>\n {showVerticalScrollbar ? (\n <ChakraScrollArea.Scrollbar zIndex=\"2\" {...verticalScrollbarProps} borderRadius={\"xs\"} />\n ) : null}\n {showHorizontalScrollbar ? (\n <ChakraScrollArea.Scrollbar\n orientation=\"horizontal\"\n zIndex=\"2\"\n {...horizontalScrollbarProps}\n borderRadius={\"xs\"}\n />\n ) : null}\n {showCorner ? <ChakraScrollArea.Corner zIndex=\"2\" /> : null}\n </ChakraScrollArea.Root>\n );\n});\n","interface BrowserStorage {\n getItem: (key: string) => string | null;\n removeItem: (key: string) => void;\n setItem: (key: string, value: string) => void;\n}\n\nconst noopStorage = {\n getItem: () => null,\n removeItem: () => {},\n setItem: () => {},\n} satisfies BrowserStorage;\n\nconst readLocalStorage = () => {\n try {\n return globalThis.localStorage;\n } catch {\n return undefined;\n }\n};\n\nexport const createBrowserStorage = (): BrowserStorage => {\n const storage = readLocalStorage();\n if (!storage) return noopStorage;\n\n return {\n getItem(key) {\n try {\n return storage.getItem(key);\n } catch {\n return null;\n }\n },\n removeItem(key) {\n try {\n storage.removeItem(key);\n } catch {}\n },\n setItem(key, value) {\n try {\n storage.setItem(key, value);\n } catch {}\n },\n };\n};\n"],"names":["Tooltip","React","forwardRef","props","ref","$","_c","children","content","contentProps","disabled","portalRef","rest","t0","portalled","undefined","_temp2","t1","ChakraTooltip","t2","t3","jsx","t4","Portal","t5","_temp","child","trim","length","node","arr","Children","toArray","every","ScrollArea","contentRef","horizontalScrollbarProps","verticalScrollbarProps","viewportProps","viewportRef","showVerticalScrollbar","showHorizontalScrollbar","showCorner","size","style","minWidth","mergedContentProps","ChakraScrollArea","t6","t7","t8","t9","t10","noopStorage","getItem","removeItem","setItem","readLocalStorage","globalThis","localStorage","createBrowserStorage","storage","key","value"],"mappings":"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"}
@@ -1,235 +0,0 @@
1
- import { jsx as c, jsxs as z } from "react/jsx-runtime";
2
- import { c as k } from "react/compiler-runtime";
3
- import { Checkbox as R, chakra as L, Text as j, IconButton as N, Switch as I, NumberInput as T, Box as $ } from "@chakra-ui/react";
4
- import * as F from "react";
5
- import { useState as P, useEffect as D } from "react";
6
- import { FileSpreadsheet as H, FileCode as O, FileChartLine as A, FileJson as B, FileText as M, FileCog as W, FileImage as q, FileArchive as U, File as X, X as Y } from "lucide-react";
7
- import { T as Z } from "./browser-storage-DPtOQJx0.js";
8
- const ce = F.forwardRef(function(t, o) {
9
- const e = k(33);
10
- let r, l, n, s, a, p, g;
11
- e[0] !== t ? ({
12
- icon: l,
13
- children: r,
14
- inputProps: n,
15
- rootRef: a,
16
- disabled: p,
17
- readOnly: g,
18
- ...s
19
- } = t, e[0] = t, e[1] = r, e[2] = l, e[3] = n, e[4] = s, e[5] = a, e[6] = p, e[7] = g) : (r = e[1], l = e[2], n = e[3], s = e[4], a = e[5], p = e[6], g = e[7]);
20
- const S = p === void 0 ? !1 : p, d = g === void 0 ? !1 : g, i = S ? "not-allowed" : d ? "default" : "pointer";
21
- let h;
22
- e[8] !== n || e[9] !== o ? (h = /* @__PURE__ */ c(R.HiddenInput, { ref: o, ...n }), e[8] = n, e[9] = o, e[10] = h) : h = e[10];
23
- let x, u, f;
24
- e[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (x = {
25
- borderColor: "border.accent-light"
26
- }, u = {
27
- borderColor: "border.accent-light"
28
- }, f = {
29
- borderColor: "border.accent-light",
30
- outline: "none",
31
- boxShadow: "none"
32
- }, e[11] = x, e[12] = u, e[13] = f) : (x = e[11], u = e[12], f = e[13]);
33
- let b;
34
- e[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (b = {
35
- bg: "bg.button.primary.default",
36
- borderColor: "bg.button.primary.default",
37
- color: "fg.button.primary.default",
38
- _hover: {
39
- borderColor: "bg.button.primary.default"
40
- },
41
- _active: {
42
- borderColor: "bg.button.primary.default"
43
- }
44
- }, e[14] = b) : b = e[14];
45
- let y;
46
- e[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = {
47
- bg: "bg.button.primary.default",
48
- borderColor: "bg.button.primary.default",
49
- color: "fg.button.primary.default",
50
- _hover: {
51
- borderColor: "bg.button.primary.default"
52
- },
53
- _active: {
54
- borderColor: "bg.button.primary.default"
55
- }
56
- }, e[15] = y) : y = e[15];
57
- let v;
58
- e[16] !== l ? (v = l ? /* @__PURE__ */ c(R.Indicator, { children: l }) : /* @__PURE__ */ c(R.Indicator, {}), e[16] = l, e[17] = v) : v = e[17];
59
- let C;
60
- e[18] !== i || e[19] !== v ? (C = /* @__PURE__ */ c(R.Control, { bg: "bg", borderColor: "border", borderRadius: "xs", color: "fg.button.primary.default", cursor: i, transition: "border-color 0.2s ease-in-out", boxShadow: "none", _hover: x, _active: u, _focusVisible: f, _checked: b, _indeterminate: y, children: v }), e[18] = i, e[19] = v, e[20] = C) : C = e[20];
61
- let _;
62
- e[21] !== r || e[22] !== i ? (_ = r != null && /* @__PURE__ */ c(R.Label, { cursor: i, children: r }), e[21] = r, e[22] = i, e[23] = _) : _ = e[23];
63
- let w;
64
- return e[24] !== S || e[25] !== i || e[26] !== d || e[27] !== s || e[28] !== a || e[29] !== _ || e[30] !== h || e[31] !== C ? (w = /* @__PURE__ */ z(R.Root, { ref: a, disabled: S, readOnly: d, cursor: i, ...s, children: [
65
- h,
66
- C,
67
- _
68
- ] }), e[24] = S, e[25] = i, e[26] = d, e[27] = s, e[28] = a, e[29] = _, e[30] = h, e[31] = C, e[32] = w) : w = e[32], w;
69
- }), G = (m) => {
70
- const t = m.split(".").pop()?.toLowerCase() ?? "";
71
- return ["csv", "tsv", "xlsx", "xls", "parquet"].includes(t) ? H : ["sql", "py", "js", "ts", "jsx", "tsx", "java", "cpp", "c", "h", "css", "scss", "sass", "php", "rb", "go", "rs", "kt", "swift"].includes(t) ? O : ["json", "jsonl", "ndjson"].includes(t) ? m.includes("/visualizations/") ? A : B : ["md", "txt", "rst", "org", "pdf", "doc", "docx", "rtf"].includes(t) ? M : ["yaml", "yml", "toml", "ini", "conf", "config"].includes(t) ? W : ["png", "jpg", "jpeg", "gif", "svg", "webp", "ico"].includes(t) ? q : ["zip", "tar", "gz", "rar", "7z"].includes(t) ? U : X;
72
- }, J = {
73
- sm: {
74
- container: {
75
- height: "5",
76
- lineHeight: {
77
- base: "5"
78
- },
79
- px: "xs"
80
- },
81
- iconSize: 12,
82
- textStyle: "label/XS"
83
- },
84
- md: {
85
- container: {
86
- height: "6",
87
- lineHeight: {
88
- base: "6"
89
- },
90
- px: "xs"
91
- },
92
- iconSize: 14,
93
- textStyle: "label/S/regular"
94
- }
95
- }, V = {
96
- neutral: {
97
- color: "fg",
98
- bg: "bg.subtle",
99
- borderColor: "border",
100
- _hover: {
101
- bg: "bg.hover"
102
- }
103
- },
104
- accent: {
105
- color: "var(--schub-foreground-accent)",
106
- bg: "var(--schub-accent-subtle)",
107
- borderColor: "var(--schub-accent-subtle)",
108
- _hover: {
109
- bg: "var(--schub-accent-subtle)"
110
- }
111
- }
112
- }, K = "md", Q = "neutral", ae = (m) => {
113
- const t = k(38);
114
- let o, e, r, l, n, s, a;
115
- t[0] !== m ? ({
116
- fileName: o,
117
- onSelect: l,
118
- onRemove: r,
119
- size: s,
120
- tone: a,
121
- icon: e,
122
- ...n
123
- } = m, t[0] = m, t[1] = o, t[2] = e, t[3] = r, t[4] = l, t[5] = n, t[6] = s, t[7] = a) : (o = t[1], e = t[2], r = t[3], l = t[4], n = t[5], s = t[6], a = t[7]);
124
- const p = s === void 0 ? K : s, g = a === void 0 ? Q : a;
125
- let S;
126
- t[8] !== o ? (S = G(o), t[8] = o, t[9] = S) : S = t[9];
127
- const d = S, i = J[p], h = V[g], x = l ? "pointer" : "default";
128
- let u;
129
- t[10] !== o || t[11] !== l ? (u = (E) => {
130
- E.stopPropagation(), l?.(o);
131
- }, t[10] = o, t[11] = l, t[12] = u) : u = t[12];
132
- let f;
133
- t[13] !== d || t[14] !== e || t[15] !== i.iconSize ? (f = e ?? /* @__PURE__ */ c(d, { size: i.iconSize }), t[13] = d, t[14] = e, t[15] = i.iconSize, t[16] = f) : f = t[16];
134
- let b;
135
- t[17] !== f ? (b = /* @__PURE__ */ c(L.span, { display: "inline-flex", flexShrink: 0, children: f }), t[17] = f, t[18] = b) : b = t[18];
136
- let y;
137
- t[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = {
138
- base: "14rem"
139
- }, t[19] = y) : y = t[19];
140
- let v;
141
- t[20] !== o || t[21] !== i.textStyle ? (v = /* @__PURE__ */ c(j, { maxW: y, textOverflow: "ellipsis", whiteSpace: "nowrap", overflow: "hidden", textStyle: i.textStyle, children: o }), t[20] = o, t[21] = i.textStyle, t[22] = v) : v = t[22];
142
- let C;
143
- t[23] !== o || t[24] !== v ? (C = /* @__PURE__ */ c(Z, { content: o, children: v }), t[23] = o, t[24] = v, t[25] = C) : C = t[25];
144
- let _;
145
- t[26] !== o || t[27] !== r ? (_ = r && /* @__PURE__ */ c(N, { "aria-label": `Remove ${o}`, size: "2xs", variant: "ghost", _hover: {
146
- bg: "transparent"
147
- }, onClick: (E) => {
148
- E.stopPropagation(), r?.(o);
149
- }, children: /* @__PURE__ */ c(Y, { size: 12 }) }), t[26] = o, t[27] = r, t[28] = _) : _ = t[28];
150
- let w;
151
- return t[29] !== n || t[30] !== i.container || t[31] !== _ || t[32] !== x || t[33] !== u || t[34] !== b || t[35] !== C || t[36] !== h ? (w = /* @__PURE__ */ z(L.span, { display: "flex", flexDirection: "row", alignItems: "center", borderWidth: "1px", borderRadius: "xs", gap: "2xs", cursor: x, ...h, ...i.container, onClick: u, ...n, children: [
152
- b,
153
- C,
154
- _
155
- ] }), t[29] = n, t[30] = i.container, t[31] = _, t[32] = x, t[33] = u, t[34] = b, t[35] = C, t[36] = h, t[37] = w) : w = t[37], w;
156
- }, de = F.forwardRef(function(t, o) {
157
- const e = k(32);
158
- let r, l, n, s, a, p, g;
159
- e[0] !== t ? ({
160
- inputProps: l,
161
- children: r,
162
- rootRef: s,
163
- trackLabel: g,
164
- thumbLabel: p,
165
- disabled: a,
166
- ...n
167
- } = t, e[0] = t, e[1] = r, e[2] = l, e[3] = n, e[4] = s, e[5] = a, e[6] = p, e[7] = g) : (r = e[1], l = e[2], n = e[3], s = e[4], a = e[5], p = e[6], g = e[7]);
168
- const S = a === void 0 ? !1 : a, d = S ? "not-allowed" : "pointer";
169
- let i;
170
- e[8] !== l || e[9] !== o ? (i = /* @__PURE__ */ c(I.HiddenInput, { ref: o, ...l }), e[8] = l, e[9] = o, e[10] = i) : i = e[10];
171
- let h;
172
- e[11] !== p ? (h = p && /* @__PURE__ */ c(I.ThumbIndicator, { fallback: p?.off, children: p?.on }), e[11] = p, e[12] = h) : h = e[12];
173
- let x;
174
- e[13] !== h ? (x = /* @__PURE__ */ c(I.Thumb, { children: h }), e[13] = h, e[14] = x) : x = e[14];
175
- let u;
176
- e[15] !== g ? (u = g && /* @__PURE__ */ c(I.Indicator, { fallback: g.off, children: g.on }), e[15] = g, e[16] = u) : u = e[16];
177
- let f;
178
- e[17] !== d || e[18] !== x || e[19] !== u ? (f = /* @__PURE__ */ z(I.Control, { cursor: d, children: [
179
- x,
180
- u
181
- ] }), e[17] = d, e[18] = x, e[19] = u, e[20] = f) : f = e[20];
182
- let b;
183
- e[21] !== r || e[22] !== d ? (b = r != null && /* @__PURE__ */ c(I.Label, { cursor: d, children: r }), e[21] = r, e[22] = d, e[23] = b) : b = e[23];
184
- let y;
185
- return e[24] !== S || e[25] !== d || e[26] !== n || e[27] !== s || e[28] !== i || e[29] !== f || e[30] !== b ? (y = /* @__PURE__ */ z(I.Root, { ref: s, disabled: S, cursor: d, ...n, children: [
186
- i,
187
- f,
188
- b
189
- ] }), e[24] = S, e[25] = d, e[26] = n, e[27] = s, e[28] = i, e[29] = f, e[30] = b, e[31] = y) : y = e[31], y;
190
- }), ue = F.forwardRef(function(t, o) {
191
- const e = k(8);
192
- let r, l;
193
- e[0] !== t ? ({
194
- children: r,
195
- ...l
196
- } = t, e[0] = t, e[1] = r, e[2] = l) : (r = e[1], l = e[2]);
197
- let n;
198
- e[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (n = /* @__PURE__ */ z(T.Control, { children: [
199
- /* @__PURE__ */ c(T.IncrementTrigger, {}),
200
- /* @__PURE__ */ c(T.DecrementTrigger, {})
201
- ] }), e[3] = n) : n = e[3];
202
- let s;
203
- return e[4] !== r || e[5] !== o || e[6] !== l ? (s = /* @__PURE__ */ z(T.Root, { ref: o, variant: "outline", ...l, children: [
204
- r,
205
- n
206
- ] }), e[4] = r, e[5] = o, e[6] = l, e[7] = s) : s = e[7], s;
207
- }), fe = T.Input, ee = (m) => m.default ?? m, te = async () => {
208
- const m = globalThis;
209
- if (m.Prism) return;
210
- const t = await import("prismjs");
211
- m.Prism = ee(t);
212
- }, be = (m) => {
213
- const [t, o] = P(null);
214
- return D(() => {
215
- let e = !1;
216
- return (async () => {
217
- await te();
218
- const r = await import("./markdown-editor-CAVqJ9yR.js").then((l) => l.m);
219
- e || o(() => r.MarkdownEditor);
220
- })(), () => {
221
- e = !0;
222
- };
223
- }, []), t ? /* @__PURE__ */ c(t, { ...m }) : /* @__PURE__ */ c($, { minH: "7rem", borderWidth: "1px", borderColor: "border", borderRadius: "xs" });
224
- };
225
- export {
226
- ce as C,
227
- be as L,
228
- fe as N,
229
- ae as R,
230
- de as S,
231
- ue as a,
232
- G as g,
233
- te as i
234
- };
235
- //# sourceMappingURL=lazy-markdown-editor-ClZPZuaU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazy-markdown-editor-ClZPZuaU.js","sources":["../src/components/primitives/checkbox.tsx","../src/utils/get-file-type-icon.ts","../src/components/primitives/resource-badge.tsx","../src/components/primitives/switch.tsx","../src/components/primitives/number-input.tsx","../src/utils/prism.ts","../src/components/rich-text/lazy-markdown-editor.tsx"],"sourcesContent":["import { Checkbox as ChakraCheckbox } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface CheckboxProps extends ChakraCheckbox.RootProps {\n icon?: React.ReactNode;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(props, ref) {\n const { icon, children, inputProps, rootRef, disabled = false, readOnly = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : readOnly ? \"default\" : \"pointer\";\n\n return (\n <ChakraCheckbox.Root ref={rootRef} disabled={disabled} readOnly={readOnly} cursor={interactiveCursor} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <ChakraCheckbox.Control\n bg=\"bg\"\n borderColor=\"border\"\n borderRadius=\"xs\"\n color=\"fg.button.primary.default\"\n cursor={interactiveCursor}\n transition=\"border-color 0.2s ease-in-out\"\n boxShadow=\"none\"\n _hover={{ borderColor: \"border.accent-light\" }}\n _active={{ borderColor: \"border.accent-light\" }}\n _focusVisible={{ borderColor: \"border.accent-light\", outline: \"none\", boxShadow: \"none\" }}\n _checked={{\n bg: \"bg.button.primary.default\",\n borderColor: \"bg.button.primary.default\",\n color: \"fg.button.primary.default\",\n _hover: { borderColor: \"bg.button.primary.default\" },\n _active: { borderColor: \"bg.button.primary.default\" },\n }}\n _indeterminate={{\n bg: \"bg.button.primary.default\",\n borderColor: \"bg.button.primary.default\",\n color: \"fg.button.primary.default\",\n _hover: { borderColor: \"bg.button.primary.default\" },\n _active: { borderColor: \"bg.button.primary.default\" },\n }}\n >\n {icon ? <ChakraCheckbox.Indicator>{icon}</ChakraCheckbox.Indicator> : <ChakraCheckbox.Indicator />}\n </ChakraCheckbox.Control>\n {children != null && <ChakraCheckbox.Label cursor={interactiveCursor}>{children}</ChakraCheckbox.Label>}\n </ChakraCheckbox.Root>\n );\n});\n","import type { LucideIcon } from \"lucide-react\";\nimport {\n File,\n FileArchive,\n FileChartLine,\n FileCode,\n FileCog,\n FileImage,\n FileJson,\n FileSpreadsheet,\n FileText,\n} from \"lucide-react\";\n\nexport const getFileTypeIcon = (filename: string): LucideIcon => {\n const extension = filename.split(\".\").pop()?.toLowerCase() ?? \"\";\n\n if ([\"csv\", \"tsv\", \"xlsx\", \"xls\", \"parquet\"].includes(extension)) return FileSpreadsheet;\n if (\n [\n \"sql\",\n \"py\",\n \"js\",\n \"ts\",\n \"jsx\",\n \"tsx\",\n \"java\",\n \"cpp\",\n \"c\",\n \"h\",\n \"css\",\n \"scss\",\n \"sass\",\n \"php\",\n \"rb\",\n \"go\",\n \"rs\",\n \"kt\",\n \"swift\",\n ].includes(extension)\n ) {\n return FileCode;\n }\n if ([\"json\", \"jsonl\", \"ndjson\"].includes(extension)) {\n if (filename.includes(\"/visualizations/\")) return FileChartLine;\n return FileJson;\n }\n if ([\"md\", \"txt\", \"rst\", \"org\", \"pdf\", \"doc\", \"docx\", \"rtf\"].includes(extension)) return FileText;\n if ([\"yaml\", \"yml\", \"toml\", \"ini\", \"conf\", \"config\"].includes(extension)) return FileCog;\n if ([\"png\", \"jpg\", \"jpeg\", \"gif\", \"svg\", \"webp\", \"ico\"].includes(extension)) return FileImage;\n if ([\"zip\", \"tar\", \"gz\", \"rar\", \"7z\"].includes(extension)) return FileArchive;\n return File;\n};\n","import type { HTMLChakraProps } from \"@chakra-ui/react\";\nimport { chakra, IconButton, Spacer, Text } from \"@chakra-ui/react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { AlertTriangle, X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { getFileTypeIcon } from \"@/utils/get-file-type-icon\";\n\nconst SIZE_STYLES = {\n sm: {\n container: {\n height: \"5\",\n lineHeight: { base: \"5\" },\n px: \"xs\",\n },\n iconSize: 12,\n textStyle: \"label/XS\",\n },\n md: {\n container: {\n height: \"6\",\n lineHeight: { base: \"6\" },\n px: \"xs\",\n },\n iconSize: 14,\n textStyle: \"label/S/regular\",\n },\n} as const;\n\nconst TONE_STYLES = {\n neutral: {\n color: \"fg\",\n bg: \"bg.subtle\",\n borderColor: \"border\",\n _hover: {\n bg: \"bg.hover\",\n },\n },\n accent: {\n color: \"var(--schub-foreground-accent)\",\n bg: \"var(--schub-accent-subtle)\",\n borderColor: \"var(--schub-accent-subtle)\",\n _hover: {\n bg: \"var(--schub-accent-subtle)\",\n },\n },\n} as const;\n\nexport interface MissingResourceBadgeProps {\n referenceId: string;\n onRemove?: (referenceId: string) => void;\n}\n\n/**\n * Shown when a reference points to a resource that no longer exists\n */\nexport const MissingResourceBadge = (props: MissingResourceBadgeProps) => {\n const { referenceId, onRemove } = props;\n return (\n <chakra.span\n height=\"24px\"\n lineHeight={{ base: \"24px\" }}\n gap=\"2xs\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n paddingX=\"xs\"\n borderRadius=\"9999px\"\n color=\"blacks.50\"\n bg=\"red.500\"\n _hover={{\n bg: \"red.600\",\n }}\n >\n <chakra.span mr=\"xs\" display=\"inline-flex\">\n <AlertTriangle size={14} />\n </chakra.span>\n <Text maxW={{ base: \"17.5rem\" }} textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" overflow=\"hidden\">\n Missing Reference\n </Text>\n <Spacer />\n {onRemove && (\n <IconButton\n color=\"blacks.50\"\n aria-label=\"Remove reference\"\n size=\"2xs\"\n ml=\"sm\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(referenceId);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n\nexport type ResourceBadgeSize = keyof typeof SIZE_STYLES;\nexport type ResourceBadgeTone = keyof typeof TONE_STYLES;\n\nexport interface ResourceBadgeProps extends Omit<HTMLChakraProps<\"span\">, \"onSelect\"> {\n fileName: string;\n onRemove?: (fileName: string) => void;\n onSelect?: (fileName: string) => void;\n size?: ResourceBadgeSize;\n tone?: ResourceBadgeTone;\n icon?: ReactNode;\n}\n\nconst DEFAULT_SIZE: ResourceBadgeSize = \"md\";\nconst DEFAULT_TONE: ResourceBadgeTone = \"neutral\";\n\nexport const ResourceBadge = (props: ResourceBadgeProps) => {\n const { fileName, onSelect, onRemove, size = DEFAULT_SIZE, tone = DEFAULT_TONE, icon, ...rest } = props;\n const IconComp: LucideIcon = getFileTypeIcon(fileName);\n const sizeStyles = SIZE_STYLES[size];\n const toneStyles = TONE_STYLES[tone];\n\n return (\n <chakra.span\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderWidth=\"1px\"\n borderRadius=\"xs\"\n gap=\"2xs\"\n cursor={onSelect ? \"pointer\" : \"default\"}\n {...toneStyles}\n {...sizeStyles.container}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(fileName);\n }}\n {...rest}\n >\n <chakra.span display=\"inline-flex\" flexShrink={0}>\n {icon ?? <IconComp size={sizeStyles.iconSize} />}\n </chakra.span>\n <Tooltip content={fileName}>\n <Text\n maxW={{ base: \"14rem\" }}\n textOverflow=\"ellipsis\"\n whiteSpace=\"nowrap\"\n overflow=\"hidden\"\n textStyle={sizeStyles.textStyle}\n >\n {fileName}\n </Text>\n </Tooltip>\n {onRemove && (\n <IconButton\n aria-label={`Remove ${fileName}`}\n size=\"2xs\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(fileName);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n","import { Switch as ChakraSwitch } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface SwitchProps extends ChakraSwitch.RootProps {\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n trackLabel?: { on: React.ReactNode; off: React.ReactNode };\n thumbLabel?: { on: React.ReactNode; off: React.ReactNode };\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(function Switch(props, ref) {\n const { inputProps, children, rootRef, trackLabel, thumbLabel, disabled = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraSwitch.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraSwitch.HiddenInput ref={ref} {...inputProps} />\n <ChakraSwitch.Control cursor={interactiveCursor}>\n <ChakraSwitch.Thumb>\n {thumbLabel && (\n <ChakraSwitch.ThumbIndicator fallback={thumbLabel?.off}>{thumbLabel?.on}</ChakraSwitch.ThumbIndicator>\n )}\n </ChakraSwitch.Thumb>\n {trackLabel && <ChakraSwitch.Indicator fallback={trackLabel.off}>{trackLabel.on}</ChakraSwitch.Indicator>}\n </ChakraSwitch.Control>\n {children != null && <ChakraSwitch.Label cursor={interactiveCursor}>{children}</ChakraSwitch.Label>}\n </ChakraSwitch.Root>\n );\n});\n","import { 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","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","import { Box } from \"@chakra-ui/react\";\nimport { type ComponentType, useEffect, useState } from \"react\";\nimport { installPrismGlobal } from \"@/utils/prism\";\nimport type { MarkdownEditorProps } from \"./markdown-editor/markdown-editor\";\n\nexport const LazyMarkdownEditor = (props: MarkdownEditorProps) => {\n const [Editor, setEditor] = useState<ComponentType<MarkdownEditorProps> | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n\n void (async () => {\n await installPrismGlobal();\n const module = await import(\"./markdown-editor/markdown-editor\");\n if (!cancelled) setEditor(() => module.MarkdownEditor);\n })();\n\n return () => {\n cancelled = true;\n };\n }, []);\n\n if (!Editor) return <Box minH=\"7rem\" borderWidth=\"1px\" borderColor=\"border\" borderRadius=\"xs\" />;\n\n return <Editor {...props} />;\n};\n"],"names":["Checkbox","React","forwardRef","props","ref","$","_c","children","icon","inputProps","rest","rootRef","t0","t1","disabled","readOnly","undefined","interactiveCursor","t2","t3","t4","t5","Symbol","for","borderColor","outline","boxShadow","t6","bg","color","_hover","_active","t7","t8","jsx","ChakraCheckbox","t9","t10","t11","jsxs","getFileTypeIcon","filename","extension","split","pop","toLowerCase","includes","FileSpreadsheet","FileCode","FileChartLine","FileJson","FileText","FileCog","FileImage","FileArchive","File","SIZE_STYLES","sm","container","height","lineHeight","base","px","iconSize","textStyle","md","TONE_STYLES","neutral","accent","DEFAULT_SIZE","DEFAULT_TONE","ResourceBadge","fileName","onRemove","onSelect","size","tone","IconComp","sizeStyles","toneStyles","e","stopPropagation","chakra","Text","Tooltip","IconButton","e_0","X","Switch","thumbLabel","trackLabel","ChakraSwitch","off","on","NumberInputRoot","ChakraNumberInput","NumberInputField","Input","readDefaultExport","module","default","installPrismGlobal","globalScope","globalThis","Prism","prismModule","LazyMarkdownEditor","Editor","setEditor","useState","useEffect","cancelled","n","MarkdownEditor","Box"],"mappings":"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"}