@pstdio/ui 0.12.2 → 0.14.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 (70) hide show
  1. package/dist/MermaidComponent-CatfVUxA.js +60 -0
  2. package/dist/MermaidComponent-CatfVUxA.js.map +1 -0
  3. package/dist/chat-ui.js +1191 -1115
  4. package/dist/chat-ui.js.map +1 -1
  5. package/dist/components/chat-ui/components/chat-input-attachments.d.ts +12 -0
  6. package/dist/components/chat-ui/components/chat-input.d.ts +3 -0
  7. package/dist/components/chat-ui/components/chat-panel.d.ts +2 -0
  8. package/dist/components/chat-ui/components/message-parts-renderer.d.ts +1 -1
  9. package/dist/components/chat-ui/components/message-types.d.ts +90 -3
  10. package/dist/components/chat-ui/index.d.ts +2 -2
  11. package/dist/components/chat-ui/mocks/library/index.d.ts +2 -2
  12. package/dist/components/chat-ui/performance/chat-performance-fixtures.d.ts +1 -1
  13. package/dist/components/chat-ui/performance/chat-performance-story-utils.d.ts +1 -1
  14. package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +3 -3
  15. package/dist/components/chat-ui/tool-rendering/question-renderer.d.ts +1 -1
  16. package/dist/components/chat-ui/tool-rendering/shared.d.ts +2 -2
  17. package/dist/components/chat-ui/tool-rendering/todowrite-renderer.d.ts +1 -1
  18. package/dist/components/chat-ui/tool-rendering/types.d.ts +1 -1
  19. package/dist/components/data-renderer/data-renderer-board-column-header.d.ts +8 -0
  20. package/dist/components/data-renderer/data-renderer-board-group-section.d.ts +17 -0
  21. package/dist/components/data-renderer/data-renderer-board-move.d.ts +21 -0
  22. package/dist/components/data-renderer/data-renderer-board.d.ts +3 -2
  23. package/dist/components/data-renderer/data-renderer-content.d.ts +7 -2
  24. package/dist/components/data-renderer/data-renderer.d.ts +2 -2
  25. package/dist/components/delete-confirmation-modal.d.ts +3 -0
  26. package/dist/components/diff-viewer/diff-card-body.d.ts +16 -0
  27. package/dist/components/diff-viewer/diff-card.d.ts +1 -0
  28. package/dist/components/diff-viewer/diff-size.d.ts +1 -1
  29. package/dist/components/list-row/list-row-chrome.d.ts +11 -0
  30. package/dist/components/mermaid-renderer/download-png.d.ts +7 -0
  31. package/dist/components/mermaid-renderer/index.d.ts +2 -0
  32. package/dist/components/mermaid-renderer/mermaid-error-state.d.ts +6 -0
  33. package/dist/components/mermaid-renderer/mermaid-fixtures.d.ts +9 -0
  34. package/dist/components/mermaid-renderer/mermaid-fullscreen.d.ts +10 -0
  35. package/dist/components/mermaid-renderer/mermaid-renderer.d.ts +8 -0
  36. package/dist/components/mermaid-renderer/mermaid-svg-view.d.ts +12 -0
  37. package/dist/components/mermaid-renderer/mermaid-toolbar.d.ts +12 -0
  38. package/dist/components/mermaid-renderer/mermaid-zoom.d.ts +6 -0
  39. package/dist/components/mermaid-renderer/svg-data-url.d.ts +6 -0
  40. package/dist/components/mermaid-renderer/use-mermaid-render.d.ts +5 -0
  41. package/dist/components/palette-shortcut.d.ts +8 -0
  42. package/dist/index.d.ts +6 -0
  43. package/dist/index.js +4871 -4487
  44. package/dist/index.js.map +1 -1
  45. package/dist/mermaid-renderer-DYEiYmYQ.js +411 -0
  46. package/dist/mermaid-renderer-DYEiYmYQ.js.map +1 -0
  47. package/dist/resource-badge-D33IFv74.js +188 -0
  48. package/dist/resource-badge-D33IFv74.js.map +1 -0
  49. package/dist/{rich-message-CEOSsdR2.js → rich-message-BFtvH9H7.js} +430 -518
  50. package/dist/rich-message-BFtvH9H7.js.map +1 -0
  51. package/dist/rich-text.js +3 -3
  52. package/dist/theme/custom/vscode-theme.d.ts +4 -4
  53. package/dist/theme/recipes/button.d.ts +1 -1
  54. package/dist/theme/recipes/progress-circle.d.ts +3 -3
  55. package/dist/theme/tokens/colors.d.ts +24 -0
  56. package/dist/{theme-VzNS1MAk.js → theme-C5qHTCU9.js} +150 -124
  57. package/dist/theme-C5qHTCU9.js.map +1 -0
  58. package/dist/theme.js +1 -1
  59. package/dist/utils/apply-file-icon-theme-preference.d.ts +35 -0
  60. package/dist/utils/file-icon-theme-preference.d.ts +15 -0
  61. package/dist/utils/resolve-file-icon-element.d.ts +8 -0
  62. package/dist/utils/theme-preference.d.ts +1 -1
  63. package/package.json +3 -2
  64. package/dist/MermaidComponent-Cz_Iob5U.js +0 -127
  65. package/dist/MermaidComponent-Cz_Iob5U.js.map +0 -1
  66. package/dist/components/chat-ui/agent-types.d.ts +0 -220
  67. package/dist/get-file-type-icon-ufFb0IkR.js +0 -102
  68. package/dist/get-file-type-icon-ufFb0IkR.js.map +0 -1
  69. package/dist/rich-message-CEOSsdR2.js.map +0 -1
  70. package/dist/theme-VzNS1MAk.js.map +0 -1
@@ -0,0 +1,188 @@
1
+ import { jsx as u, jsxs as E } from "react/jsx-runtime";
2
+ import { c as P } from "react/compiler-runtime";
3
+ import { Tooltip as F, Portal as $, ScrollArea as A, chakra as L, Text as D, Spacer as k, IconButton as H } from "@chakra-ui/react";
4
+ import * as I from "react";
5
+ import { FileSpreadsheet as N, FileCode as O, FileChartLine as V, FileJson as q, FileText as B, FileCog as U, FileImage as W, FileArchive as Y, File as Z, X as J } from "lucide-react";
6
+ const X = I.forwardRef(function(t, l) {
7
+ const e = P(26);
8
+ let r, o, n, a, s, x, S, m;
9
+ e[0] !== t ? ({
10
+ showArrow: S,
11
+ children: r,
12
+ disabled: a,
13
+ portalled: m,
14
+ content: o,
15
+ contentProps: n,
16
+ portalRef: s,
17
+ ...x
18
+ } = t, e[0] = t, e[1] = r, e[2] = o, e[3] = n, e[4] = a, e[5] = s, e[6] = x, e[7] = S, e[8] = m) : (r = e[1], o = e[2], n = e[3], a = e[4], s = e[5], x = e[6], S = e[7], m = e[8]);
19
+ const y = m === void 0 ? !0 : m;
20
+ if (a || K(o))
21
+ return r;
22
+ let d;
23
+ e[9] !== r ? (d = /* @__PURE__ */ u(F.Trigger, { asChild: !0, children: r }), e[9] = r, e[10] = d) : d = e[10];
24
+ const g = !y;
25
+ let c;
26
+ e[11] !== S ? (c = S && /* @__PURE__ */ u(F.Arrow, { children: /* @__PURE__ */ u(F.ArrowTip, {}) }), e[11] = S, e[12] = c) : c = e[12];
27
+ let i;
28
+ e[13] !== o || e[14] !== n || e[15] !== l || e[16] !== c ? (i = /* @__PURE__ */ u(F.Positioner, { children: /* @__PURE__ */ E(F.Content, { ref: l, ...n, children: [
29
+ c,
30
+ o
31
+ ] }) }), e[13] = o, e[14] = n, e[15] = l, e[16] = c, e[17] = i) : i = e[17];
32
+ let p;
33
+ e[18] !== s || e[19] !== g || e[20] !== i ? (p = /* @__PURE__ */ u($, { disabled: g, container: s, children: i }), e[18] = s, e[19] = g, e[20] = i, e[21] = p) : p = e[21];
34
+ let b;
35
+ return e[22] !== x || e[23] !== d || e[24] !== p ? (b = /* @__PURE__ */ E(F.Root, { openDelay: 100, closeDelay: 100, ...x, children: [
36
+ d,
37
+ p
38
+ ] }), e[22] = x, e[23] = d, e[24] = p, e[25] = b) : b = e[25], b;
39
+ });
40
+ function G(h) {
41
+ return typeof h == "string" ? h.trim().length === 0 : !1;
42
+ }
43
+ function K(h) {
44
+ if (h == null || h === !1)
45
+ return !0;
46
+ const t = I.Children.toArray(h);
47
+ return t.length === 0 ? !0 : t.every(G);
48
+ }
49
+ const se = I.forwardRef(function(t, l) {
50
+ const e = P(40);
51
+ let r, o, n, a, s, x, S, m, y, f, d, g;
52
+ e[0] !== t ? ({
53
+ children: r,
54
+ viewportRef: g,
55
+ contentRef: n,
56
+ viewportProps: d,
57
+ contentProps: o,
58
+ verticalScrollbarProps: f,
59
+ horizontalScrollbarProps: a,
60
+ showVerticalScrollbar: x,
61
+ showHorizontalScrollbar: S,
62
+ showCorner: m,
63
+ size: y,
64
+ ...s
65
+ } = t, e[0] = t, e[1] = r, e[2] = o, e[3] = n, e[4] = a, e[5] = s, e[6] = x, e[7] = S, e[8] = m, e[9] = y, e[10] = f, e[11] = d, e[12] = g) : (r = e[1], o = e[2], n = e[3], a = e[4], s = e[5], x = e[6], S = e[7], m = e[8], y = e[9], f = e[10], d = e[11], g = e[12]);
66
+ const c = x === void 0 ? !0 : x, i = S === void 0 ? !1 : S, p = m === void 0 ? c && i : m, b = y === void 0 ? "xs" : y;
67
+ let w;
68
+ e[13] !== o || e[14] !== i ? (w = i ? o : {
69
+ ...o,
70
+ style: {
71
+ minWidth: 0,
72
+ ...o?.style
73
+ }
74
+ }, e[13] = o, e[14] = i, e[15] = w) : w = e[15];
75
+ const T = w;
76
+ let z;
77
+ e[16] !== r || e[17] !== n || e[18] !== T ? (z = /* @__PURE__ */ u(A.Content, { ...T, ref: n, children: r }), e[16] = r, e[17] = n, e[18] = T, e[19] = z) : z = e[19];
78
+ let v;
79
+ e[20] !== z || e[21] !== d || e[22] !== g ? (v = /* @__PURE__ */ u(A.Viewport, { ...d, ref: g, children: z }), e[20] = z, e[21] = d, e[22] = g, e[23] = v) : v = e[23];
80
+ let C;
81
+ e[24] !== c || e[25] !== f ? (C = c ? /* @__PURE__ */ u(A.Scrollbar, { ...f, borderRadius: "xs" }) : null, e[24] = c, e[25] = f, e[26] = C) : C = e[26];
82
+ let R;
83
+ e[27] !== a || e[28] !== i ? (R = i ? /* @__PURE__ */ u(A.Scrollbar, { orientation: "horizontal", ...a, borderRadius: "xs" }) : null, e[27] = a, e[28] = i, e[29] = R) : R = e[29];
84
+ let _;
85
+ e[30] !== p ? (_ = p ? /* @__PURE__ */ u(A.Corner, {}) : null, e[30] = p, e[31] = _) : _ = e[31];
86
+ let j;
87
+ return e[32] !== l || e[33] !== s || e[34] !== b || e[35] !== v || e[36] !== C || e[37] !== R || e[38] !== _ ? (j = /* @__PURE__ */ E(A.Root, { ref: l, size: b, ...s, children: [
88
+ v,
89
+ C,
90
+ R,
91
+ _
92
+ ] }), e[32] = l, e[33] = s, e[34] = b, e[35] = v, e[36] = C, e[37] = R, e[38] = _, e[39] = j) : j = e[39], j;
93
+ }), M = (h) => {
94
+ const t = h.split(".").pop()?.toLowerCase() ?? "";
95
+ return ["csv", "tsv", "xlsx", "xls", "parquet"].includes(t) ? N : ["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) ? h.includes("/visualizations/") ? V : q : ["md", "txt", "rst", "org", "pdf", "doc", "docx", "rtf"].includes(t) ? B : ["yaml", "yml", "toml", "ini", "conf", "config"].includes(t) ? U : ["png", "jpg", "jpeg", "gif", "svg", "webp", "ico"].includes(t) ? W : ["zip", "tar", "gz", "rar", "7z"].includes(t) ? Y : Z;
96
+ }, Q = {
97
+ sm: {
98
+ container: {
99
+ height: "20px",
100
+ lineHeight: {
101
+ base: "20px"
102
+ },
103
+ px: "2xs"
104
+ },
105
+ iconSize: 12,
106
+ textStyle: "xs"
107
+ },
108
+ md: {
109
+ container: {
110
+ height: "24px",
111
+ lineHeight: {
112
+ base: "24px"
113
+ },
114
+ px: "xs"
115
+ },
116
+ iconSize: 14,
117
+ textStyle: "sm"
118
+ }
119
+ }, ee = {
120
+ neutral: {
121
+ color: "color.primary",
122
+ bg: "bg.muted",
123
+ _hover: {
124
+ bg: "bg.emphasized"
125
+ }
126
+ },
127
+ accent: {
128
+ color: "var(--schub-foreground-accent)",
129
+ bg: "var(--schub-accent-subtle)",
130
+ _hover: {
131
+ bg: "var(--schub-accent-subtle)"
132
+ }
133
+ }
134
+ }, te = "md", le = "neutral", ce = (h) => {
135
+ const t = P(39);
136
+ let l, e, r, o, n, a, s;
137
+ t[0] !== h ? ({
138
+ fileName: l,
139
+ onSelect: o,
140
+ onRemove: r,
141
+ size: a,
142
+ tone: s,
143
+ icon: e,
144
+ ...n
145
+ } = h, t[0] = h, t[1] = l, t[2] = e, t[3] = r, t[4] = o, t[5] = n, t[6] = a, t[7] = s) : (l = t[1], e = t[2], r = t[3], o = t[4], n = t[5], a = t[6], s = t[7]);
146
+ const x = a === void 0 ? te : a, S = s === void 0 ? le : s;
147
+ let m;
148
+ t[8] !== l ? (m = M(l), t[8] = l, t[9] = m) : m = t[9];
149
+ const y = m, f = Q[x], d = ee[S], g = o ? "pointer" : "default";
150
+ let c;
151
+ t[10] !== l || t[11] !== o ? (c = (R) => {
152
+ R.stopPropagation(), o?.(l);
153
+ }, t[10] = l, t[11] = o, t[12] = c) : c = t[12];
154
+ let i;
155
+ t[13] !== y || t[14] !== e || t[15] !== f.iconSize ? (i = e ?? /* @__PURE__ */ u(y, { size: f.iconSize }), t[13] = y, t[14] = e, t[15] = f.iconSize, t[16] = i) : i = t[16];
156
+ let p;
157
+ t[17] !== i ? (p = /* @__PURE__ */ u(L.span, { mr: "xs", display: "inline-flex", children: i }), t[17] = i, t[18] = p) : p = t[18];
158
+ let b;
159
+ t[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (b = {
160
+ base: "14rem"
161
+ }, t[19] = b) : b = t[19];
162
+ let w;
163
+ t[20] !== l || t[21] !== f.textStyle ? (w = /* @__PURE__ */ u(D, { maxW: b, textOverflow: "ellipsis", whiteSpace: "nowrap", overflow: "hidden", textStyle: f.textStyle, children: l }), t[20] = l, t[21] = f.textStyle, t[22] = w) : w = t[22];
164
+ let T;
165
+ t[23] !== l || t[24] !== w ? (T = /* @__PURE__ */ u(X, { content: l, children: w }), t[23] = l, t[24] = w, t[25] = T) : T = t[25];
166
+ let z;
167
+ t[26] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (z = /* @__PURE__ */ u(k, {}), t[26] = z) : z = t[26];
168
+ let v;
169
+ t[27] !== l || t[28] !== r ? (v = r && /* @__PURE__ */ u(H, { "aria-label": `Remove ${l}`, size: "2xs", ml: "xs", variant: "ghost", _hover: {
170
+ bg: "transparent"
171
+ }, onClick: (R) => {
172
+ R.stopPropagation(), r?.(l);
173
+ }, children: /* @__PURE__ */ u(J, { size: 12 }) }), t[27] = l, t[28] = r, t[29] = v) : v = t[29];
174
+ let C;
175
+ return t[30] !== n || t[31] !== f.container || t[32] !== v || t[33] !== g || t[34] !== c || t[35] !== p || t[36] !== T || t[37] !== d ? (C = /* @__PURE__ */ E(L.span, { display: "flex", flexDirection: "row", alignItems: "center", borderRadius: "xs", gap: "2xs", cursor: g, ...d, ...f.container, onClick: c, ...n, children: [
176
+ p,
177
+ T,
178
+ z,
179
+ v
180
+ ] }), t[30] = n, t[31] = f.container, t[32] = v, t[33] = g, t[34] = c, t[35] = p, t[36] = T, t[37] = d, t[38] = C) : C = t[38], C;
181
+ };
182
+ export {
183
+ ce as R,
184
+ se as S,
185
+ X as T,
186
+ M as g
187
+ };
188
+ //# sourceMappingURL=resource-badge-D33IFv74.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-badge-D33IFv74.js","sources":["../src/components/tooltip.tsx","../src/components/scroll-area.tsx","../src/utils/get-file-type-icon.ts","../src/components/resource-badge.tsx"],"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 showArrow?: boolean;\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 { showArrow, 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 {showArrow && (\n <ChakraTooltip.Arrow>\n <ChakraTooltip.ArrowTip />\n </ChakraTooltip.Arrow>\n )}\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 ? <ChakraScrollArea.Scrollbar {...verticalScrollbarProps} borderRadius={\"xs\"} /> : null}\n {showHorizontalScrollbar ? (\n <ChakraScrollArea.Scrollbar orientation=\"horizontal\" {...horizontalScrollbarProps} borderRadius={\"xs\"} />\n ) : null}\n {showCorner ? <ChakraScrollArea.Corner /> : null}\n </ChakraScrollArea.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 { getFileTypeIcon } from \"../utils/get-file-type-icon\";\nimport { Tooltip } from \"./tooltip\";\n\nconst SIZE_STYLES = {\n sm: {\n container: {\n height: \"20px\",\n lineHeight: { base: \"20px\" },\n px: \"2xs\",\n },\n iconSize: 12,\n textStyle: \"xs\",\n },\n md: {\n container: {\n height: \"24px\",\n lineHeight: { base: \"24px\" },\n px: \"xs\",\n },\n iconSize: 14,\n textStyle: \"sm\",\n },\n} as const;\n\nconst TONE_STYLES = {\n neutral: {\n color: \"color.primary\",\n bg: \"bg.muted\",\n _hover: {\n bg: \"bg.emphasized\",\n },\n },\n accent: {\n color: \"var(--schub-foreground-accent)\",\n bg: \"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=\"xs\"\n color={`fg.error`}\n bg={`bg.accent-secondary.red-light`}\n _hover={{\n bg: `bg.accent-secondary.red-light`,\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=\"fg.error\"\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 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 mr=\"xs\" display=\"inline-flex\">\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 <Spacer />\n {onRemove && (\n <IconButton\n aria-label={`Remove ${fileName}`}\n size=\"2xs\"\n ml=\"xs\"\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"],"names":["Tooltip","React","forwardRef","props","ref","$","_c","children","content","contentProps","disabled","portalRef","rest","showArrow","t0","portalled","undefined","_temp2","t1","ChakraTooltip","t2","t3","jsx","t4","jsxs","t5","Portal","t6","_temp","child","trim","length","node","arr","Children","toArray","every","ScrollArea","contentRef","horizontalScrollbarProps","verticalScrollbarProps","viewportProps","viewportRef","showVerticalScrollbar","showHorizontalScrollbar","showCorner","size","style","minWidth","mergedContentProps","ChakraScrollArea","t7","t8","t9","t10","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","color","bg","_hover","accent","DEFAULT_SIZE","DEFAULT_TONE","ResourceBadge","fileName","icon","onRemove","onSelect","tone","IconComp","sizeStyles","toneStyles","e","stopPropagation","chakra","Symbol","for","Text","Spacer","t11","IconButton","e_0","X","t12"],"mappings":"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"}