@pstdio/ui 0.17.0 → 0.19.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 (132) hide show
  1. package/dist/{MermaidComponent-BCMQqPqu.js → MermaidComponent-BPiVFNYK.js} +2 -2
  2. package/dist/{MermaidComponent-BCMQqPqu.js.map → MermaidComponent-BPiVFNYK.js.map} +1 -1
  3. package/dist/chat-ui.js +941 -899
  4. package/dist/chat-ui.js.map +1 -1
  5. package/dist/components/chat-ui/components/chat-message-list-items.d.ts +17 -0
  6. package/dist/components/chat-ui/components/message-types.d.ts +1 -0
  7. package/dist/components/chat-ui/components/timeline.d.ts +2 -0
  8. package/dist/components/chat-ui/tool-rendering/default-renderers.d.ts +1 -0
  9. package/dist/components/chat-ui/tool-rendering/shared.d.ts +3 -2
  10. package/dist/components/chat-ui/tool-rendering/standard-renderers.d.ts +1 -0
  11. package/dist/components/data-table/data-table-column-menu.d.ts +4 -1
  12. package/dist/components/data-table/data-table-header.d.ts +0 -8
  13. package/dist/components/data-table/data-table-skeleton.d.ts +13 -0
  14. package/dist/components/data-table/editable-cells-story.d.ts +9 -0
  15. package/dist/components/data-table/index.d.ts +2 -0
  16. package/dist/components/diff-viewer/code-editor.d.ts +2 -0
  17. package/dist/components/diff-viewer/index.d.ts +1 -1
  18. package/dist/components/diff-viewer/monaco-browser.d.ts +1 -0
  19. package/dist/components/overlays/dialog-accept-shortcut.d.ts +12 -0
  20. package/dist/components/overlays/index.d.ts +1 -0
  21. package/dist/components/overlays/searchable-menu-input.d.ts +9 -0
  22. package/dist/components/param-editor/index.d.ts +7 -2
  23. package/dist/components/param-editor/inputs/action-input.d.ts +1 -0
  24. package/dist/components/param-editor/inputs/boolean-input.d.ts +13 -0
  25. package/dist/components/param-editor/inputs/color-input.d.ts +1 -0
  26. package/dist/components/param-editor/inputs/date-input.d.ts +1 -0
  27. package/dist/components/param-editor/inputs/file-upload-input.d.ts +15 -0
  28. package/dist/components/param-editor/inputs/file-upload-value.d.ts +7 -0
  29. package/dist/components/param-editor/inputs/horizontal-text-input.d.ts +1 -0
  30. package/dist/components/param-editor/inputs/markdown-input.d.ts +13 -0
  31. package/dist/components/param-editor/inputs/number-input.d.ts +1 -0
  32. package/dist/components/param-editor/inputs/range-input.d.ts +1 -0
  33. package/dist/components/param-editor/inputs/resource-input.d.ts +2 -0
  34. package/dist/components/param-editor/inputs/segmented-input.d.ts +1 -0
  35. package/dist/components/param-editor/inputs/selection-input.d.ts +6 -0
  36. package/dist/components/param-editor/inputs/selection-menu.d.ts +10 -0
  37. package/dist/components/param-editor/inputs/text-input.d.ts +1 -0
  38. package/dist/components/param-editor/param-editor-advanced-field.d.ts +14 -0
  39. package/dist/components/param-editor/param-editor-control-fixtures.d.ts +24 -0
  40. package/dist/components/param-editor/param-editor-field.d.ts +2 -0
  41. package/dist/components/param-editor/param-editor-horizontal.d.ts +2 -2
  42. package/dist/components/param-editor/param-editor-label.d.ts +1 -0
  43. package/dist/components/param-editor/param-editor-presentation.d.ts +3 -0
  44. package/dist/components/param-editor/param-editor-row.d.ts +17 -0
  45. package/dist/components/param-editor/param-editor.types.d.ts +43 -13
  46. package/dist/components/param-editor/resolve-param-value.d.ts +2 -0
  47. package/dist/components/primitives/chip.d.ts +4 -0
  48. package/dist/components/primitives/glyph-icon.d.ts +16 -0
  49. package/dist/components/primitives/icon-color-picker.d.ts +3 -13
  50. package/dist/components/primitives/icon-options.d.ts +301 -0
  51. package/dist/components/primitives/index.d.ts +12 -3
  52. package/dist/components/primitives/resource-badge.d.ts +12 -10
  53. package/dist/components/primitives/segmented-control.d.ts +20 -0
  54. package/dist/components/primitives/tag-swatch.d.ts +10 -0
  55. package/dist/components/rich-text/index.d.ts +1 -0
  56. package/dist/components/rich-text/lazy-markdown-editor.d.ts +2 -0
  57. package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -1
  58. package/dist/components/tag-editor/index.d.ts +4 -0
  59. package/dist/components/tag-editor/tag-editor-heading.d.ts +11 -0
  60. package/dist/components/tag-editor/tag-editor-row.d.ts +1 -1
  61. package/dist/components/tag-editor/tag-editor-save-bar.d.ts +13 -0
  62. package/dist/components/tag-editor/tag-editor.types.d.ts +11 -11
  63. package/dist/components/tag-editor/tag-settings-panel.d.ts +3 -1
  64. package/dist/data-table.js +1018 -926
  65. package/dist/data-table.js.map +1 -1
  66. package/dist/dialog-accept-shortcut-DAEBsoWW.js +7 -0
  67. package/dist/dialog-accept-shortcut-DAEBsoWW.js.map +1 -0
  68. package/dist/diff.js +370 -366
  69. package/dist/diff.js.map +1 -1
  70. package/dist/font/css/prompt-studio-icons.css +720 -0
  71. package/dist/font/prompt-studio-icons.eot +0 -0
  72. package/dist/font/prompt-studio-icons.svg +1 -0
  73. package/dist/font/prompt-studio-icons.ttf +0 -0
  74. package/dist/font/prompt-studio-icons.woff +0 -0
  75. package/dist/font/prompt-studio-icons.woff2 +0 -0
  76. package/dist/index.d.ts +2 -2
  77. package/dist/index.js +1958 -1744
  78. package/dist/index.js.map +1 -1
  79. package/dist/{kanban-renderer-toolbar-B9ro-9z1.js → kanban-renderer-toolbar-Bcj_N1qr.js} +66 -66
  80. package/dist/kanban-renderer-toolbar-Bcj_N1qr.js.map +1 -0
  81. package/dist/kanban-renderer.js +834 -817
  82. package/dist/kanban-renderer.js.map +1 -1
  83. package/dist/lazy-markdown-editor-DwhqQ-NN.js +26 -0
  84. package/dist/lazy-markdown-editor-DwhqQ-NN.js.map +1 -0
  85. package/dist/list-row-BtoVJpFs.js +821 -0
  86. package/dist/list-row-BtoVJpFs.js.map +1 -0
  87. package/dist/markdown-DDd2ESoH.js +743 -0
  88. package/dist/markdown-DDd2ESoH.js.map +1 -0
  89. package/dist/markdown-editor-CYVkzt8t.js +741 -0
  90. package/dist/markdown-editor-CYVkzt8t.js.map +1 -0
  91. package/dist/monaco-browser-CO0NxK_Z.js +19 -0
  92. package/dist/monaco-browser-CO0NxK_Z.js.map +1 -0
  93. package/dist/param-editor-XRjSu6MT.js +161 -0
  94. package/dist/param-editor-XRjSu6MT.js.map +1 -0
  95. package/dist/param-editor-field-B9lEPq8c.js +3028 -0
  96. package/dist/param-editor-field-B9lEPq8c.js.map +1 -0
  97. package/dist/resource-badge-CuItchgL.js +98 -0
  98. package/dist/resource-badge-CuItchgL.js.map +1 -0
  99. package/dist/rich-message--eRzjWYK.js +730 -0
  100. package/dist/rich-message--eRzjWYK.js.map +1 -0
  101. package/dist/rich-text.js +114 -827
  102. package/dist/rich-text.js.map +1 -1
  103. package/dist/style.css +1 -1
  104. package/dist/theme/primitives/fonts.d.ts +3 -0
  105. package/dist/theme/primitives/sizes.d.ts +59 -0
  106. package/dist/theme/recipes/badge.d.ts +8 -0
  107. package/dist/theme/recipes/color-picker.d.ts +18 -1
  108. package/dist/theme/recipes/segmented-control.d.ts +22 -0
  109. package/dist/theme/recipes/switch.d.ts +18 -0
  110. package/dist/theme/recipes/tabs.d.ts +11 -0
  111. package/dist/{theme-CNhnbvcE.js → theme-7PDdD9OD.js} +403 -195
  112. package/dist/theme-7PDdD9OD.js.map +1 -0
  113. package/dist/theme.js +1 -1
  114. package/dist/{tree-list-CZHLAURU.js → tree-list-B2L0cTj2.js} +2 -2
  115. package/dist/{tree-list-CZHLAURU.js.map → tree-list-B2L0cTj2.js.map} +1 -1
  116. package/package.json +3 -2
  117. package/dist/components/param-editor/inputs/file-accept.d.ts +0 -22
  118. package/dist/components/param-editor/inputs/file-drop-input.d.ts +0 -14
  119. package/dist/kanban-renderer-toolbar-B9ro-9z1.js.map +0 -1
  120. package/dist/list-row-YRUxEcy3.js +0 -808
  121. package/dist/list-row-YRUxEcy3.js.map +0 -1
  122. package/dist/param-editor-CYZJbmKu.js +0 -933
  123. package/dist/param-editor-CYZJbmKu.js.map +0 -1
  124. package/dist/param-editor-read-only-field-DgtLqcFa.js +0 -925
  125. package/dist/param-editor-read-only-field-DgtLqcFa.js.map +0 -1
  126. package/dist/prism-BXb57lxL.js +0 -125
  127. package/dist/prism-BXb57lxL.js.map +0 -1
  128. package/dist/resource-badge-qCWHP-wQ.js +0 -99
  129. package/dist/resource-badge-qCWHP-wQ.js.map +0 -1
  130. package/dist/rich-message-DBf_5YlW.js +0 -1450
  131. package/dist/rich-message-DBf_5YlW.js.map +0 -1
  132. package/dist/theme-CNhnbvcE.js.map +0 -1
@@ -0,0 +1,98 @@
1
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
2
+ import { c as w } from "react/compiler-runtime";
3
+ import { chakra as T, Text as E, IconButton as I } from "@chakra-ui/react";
4
+ import { FileSpreadsheet as L, FileCode as k, FileChartLine as R, FileJson as A, FileText as D, FileCog as N, FileImage as O, FileArchive as q, File as B, X as H } from "lucide-react";
5
+ import { T as P } from "./scroll-area-BMbg1WcD.js";
6
+ const U = (n) => {
7
+ const e = n.split(".").pop()?.toLowerCase() ?? "";
8
+ return ["csv", "tsv", "xlsx", "xls", "parquet"].includes(e) ? L : ["sql", "py", "js", "ts", "jsx", "tsx", "java", "cpp", "c", "h", "css", "scss", "sass", "php", "rb", "go", "rs", "kt", "swift"].includes(e) ? k : ["json", "jsonl", "ndjson"].includes(e) ? n.includes("/visualizations/") ? R : A : ["md", "txt", "rst", "org", "pdf", "doc", "docx", "rtf"].includes(e) ? D : ["yaml", "yml", "toml", "ini", "conf", "config"].includes(e) ? N : ["png", "jpg", "jpeg", "gif", "svg", "webp", "ico"].includes(e) ? O : ["zip", "tar", "gz", "rar", "7z"].includes(e) ? q : B;
9
+ }, W = {
10
+ sm: {
11
+ container: {
12
+ height: "5",
13
+ lineHeight: {
14
+ base: "5"
15
+ },
16
+ px: "xs"
17
+ },
18
+ iconSize: 12,
19
+ textStyle: "label/XS"
20
+ },
21
+ md: {
22
+ container: {
23
+ height: "6",
24
+ lineHeight: {
25
+ base: "6"
26
+ },
27
+ px: "xs"
28
+ },
29
+ iconSize: 14,
30
+ textStyle: "label/S/regular"
31
+ }
32
+ }, X = {
33
+ neutral: {
34
+ color: "fg",
35
+ bg: "bg.subtle",
36
+ borderColor: "border",
37
+ _hover: {
38
+ bg: "bg.hover"
39
+ }
40
+ },
41
+ accent: {
42
+ color: "var(--schub-foreground-accent)",
43
+ bg: "var(--schub-accent-subtle)",
44
+ borderColor: "var(--schub-accent-subtle)",
45
+ _hover: {
46
+ bg: "var(--schub-accent-subtle)"
47
+ }
48
+ }
49
+ }, Y = "md", Z = "neutral", Q = (n) => {
50
+ const e = w(38);
51
+ let t, l, o, s, r, x, h;
52
+ e[0] !== n ? ({
53
+ fileName: t,
54
+ onSelect: s,
55
+ onRemove: o,
56
+ size: x,
57
+ tone: h,
58
+ icon: l,
59
+ ...r
60
+ } = n, e[0] = n, e[1] = t, e[2] = l, e[3] = o, e[4] = s, e[5] = r, e[6] = x, e[7] = h) : (t = e[1], l = e[2], o = e[3], s = e[4], r = e[5], x = e[6], h = e[7]);
61
+ const j = x === void 0 ? Y : x, C = h === void 0 ? Z : h;
62
+ let b;
63
+ e[8] !== t ? (b = U(t), e[8] = t, e[9] = b) : b = e[9];
64
+ const v = b, i = W[j], y = X[C], z = s ? "pointer" : "default";
65
+ let c;
66
+ e[10] !== t || e[11] !== s ? (c = (F) => {
67
+ F.stopPropagation(), s?.(t);
68
+ }, e[10] = t, e[11] = s, e[12] = c) : c = e[12];
69
+ let a;
70
+ e[13] !== v || e[14] !== l || e[15] !== i.iconSize ? (a = l ?? /* @__PURE__ */ g(v, { size: i.iconSize }), e[13] = v, e[14] = l, e[15] = i.iconSize, e[16] = a) : a = e[16];
71
+ let f;
72
+ e[17] !== a ? (f = /* @__PURE__ */ g(T.span, { display: "inline-flex", flexShrink: 0, children: a }), e[17] = a, e[18] = f) : f = e[18];
73
+ let m;
74
+ e[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = {
75
+ base: "14rem"
76
+ }, e[19] = m) : m = e[19];
77
+ let d;
78
+ e[20] !== t || e[21] !== i.textStyle ? (d = /* @__PURE__ */ g(E, { maxW: m, textOverflow: "ellipsis", whiteSpace: "nowrap", overflow: "hidden", textStyle: i.textStyle, children: t }), e[20] = t, e[21] = i.textStyle, e[22] = d) : d = e[22];
79
+ let p;
80
+ e[23] !== t || e[24] !== d ? (p = /* @__PURE__ */ g(P, { content: t, children: d }), e[23] = t, e[24] = d, e[25] = p) : p = e[25];
81
+ let u;
82
+ e[26] !== t || e[27] !== o ? (u = o && /* @__PURE__ */ g(I, { "aria-label": `Remove ${t}`, size: "2xs", variant: "ghost", _hover: {
83
+ bg: "transparent"
84
+ }, onClick: (F) => {
85
+ F.stopPropagation(), o?.(t);
86
+ }, children: /* @__PURE__ */ g(H, { size: 12 }) }), e[26] = t, e[27] = o, e[28] = u) : u = e[28];
87
+ let S;
88
+ return e[29] !== r || e[30] !== i.container || e[31] !== u || e[32] !== z || e[33] !== c || e[34] !== f || e[35] !== p || e[36] !== y ? (S = /* @__PURE__ */ _(T.span, { display: "flex", flexDirection: "row", alignItems: "center", borderWidth: "1px", borderRadius: "xs", gap: "2xs", cursor: z, ...y, ...i.container, onClick: c, ...r, children: [
89
+ f,
90
+ p,
91
+ u
92
+ ] }), e[29] = r, e[30] = i.container, e[31] = u, e[32] = z, e[33] = c, e[34] = f, e[35] = p, e[36] = y, e[37] = S) : S = e[37], S;
93
+ };
94
+ export {
95
+ Q as R,
96
+ U as g
97
+ };
98
+ //# sourceMappingURL=resource-badge-CuItchgL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-badge-CuItchgL.js","sources":["../src/utils/get-file-type-icon.ts","../src/components/primitives/resource-badge.tsx"],"sourcesContent":["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"],"names":["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","borderColor","_hover","accent","DEFAULT_SIZE","DEFAULT_TONE","ResourceBadge","props","$","_c","fileName","icon","onRemove","onSelect","rest","t0","t1","size","tone","undefined","t2","IconComp","sizeStyles","toneStyles","t3","t4","e","stopPropagation","t5","jsx","t6","chakra","t7","Symbol","for","t8","Text","t9","Tooltip","t10","IconButton","e_0","X","t11","jsxs"],"mappings":"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"}